spring - Eureka server和eureka client要分开tomcat服务器

标签 spring tomcat netflix-eureka

我正在寻找一种能够将 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 服务器运行位置的信息。客户端应该向 eureka 服务器注册,为此您需要配置您的客户端 application.yml如下

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

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

关于spring - Eureka server和eureka client要分开tomcat服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42699081/

相关文章:

spring - Spring Insight 需要 tcServer,还是可以与 Eclipse 和 Tomcat 一起使用?

java - 通过配置类创建事务管理器和实体管理器

apache - 如何将本地主机转移到开放服务器

Tomcat 不会停止或重新启动

java - Netflix Eureka Server 未使用 JDK 11 作为 Spring-Boot 应用程序启动。但同样在 JDK1.8 上运行

java - Spring 3.0 安全性不适用于基于注释的 Controller

java - 为什么客户端无法连接到Java Websocket服务器?

java - 尝试通过 ResourceLink 访问 Tomcat 数据源时返回的是 ResourceRefLink

java - 为zuul转发错误设置自定义错误

spring-boot - 使用 Eureka 客户端和自定义上下文路径的 Spring Boot 管理在健康状态上失败