Eureka server和eureka client分开tomcat台服务器

Eureka server and eureka client to separate tomcat servers

我正在寻找一种能够将 Eureka 服务器部署到不同于 Eureka 客户端的 tomcat 服务器的方法。

这是客户端application.yml:

eureka:
  client:
    registryFetchIntervalSeconds: 5
  instance:
    preferIpAddress: true
    leaseRenewalIntervalInSeconds: 10

server:
  port: 8080

spring:
  application.name: my-client
  jmx:
      default-domain: my-client

并且服务器 application.yml 看起来像:

server:
  port: 8761
eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false

如果我将它们部署到同一个 tomcat-服务器,它工作得很好。但是,如果我仅使用服务器启动 tomcat,然后使用客户端启动服务器,我会收到以下错误:

2017-03-09 16:17:58.496  INFO 7693 --- [on(2)-127.0.0.1] com.netflix.discovery.DiscoveryClient    : Registered Applications size is zero : true
2017-03-09 16:17:58.496  INFO 7693 --- [on(2)-127.0.0.1] com.netflix.discovery.DiscoveryClient    : Application version is -1: true
2017-03-09 16:17:58.496  INFO 7693 --- [on(2)-127.0.0.1] com.netflix.discovery.DiscoveryClient    : Getting all instance registry info from the eureka server
2017-03-09 16:18:04.740  WARN 7693 --- [on(2)-127.0.0.1] c.n.d.s.t.d.RetryableEurekaHttpClient    : Request execution failure with status code 404; retrying on another server if available
2017-03-09 16:18:04.745 ERROR 7693 --- [on(2)-127.0.0.1] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_MYCLIENT-CLIENT/192.168.196.141:my-client:8080 - was unable to refresh its cache! status = Cannot execute request on any known server

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
    at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:111) ~[eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134) ~[eureka-client-1.4.12.jar:1.4.12]

bootstrap.yml和application.yml有什么区别?

如有任何帮助,我们将不胜感激!

您的客户端 application.yml 没有关于您的 eureka 服务器位置的信息 running.client 应该向 eureka 服务器注册,为此您需要配置您的客户application.yml如下

eureka:
 client:
  serviceUrl:
       defaultZone:http:localhost:8081/eureka/

 instance:     
  instanceId:application_name:${random.value}