当客户端应用的spring.application.name与eureka.instance.appname

时间:2019-06-13 17:36:08

标签: netflix-eureka netflix-zuul netflix-ribbon

我正在用eureka服务器注册DiscoveryClients。客户端服务的eureka.instance.appname与spring.application.name不同。在eureka服务器页面中,可以看到服务已正确注册。也就是说,service-id是我在相应应用程序的eureka.instance.appname中提到的名称,实例ID设置如下:

<host-where-the-service-runs>:spring.app.name:<port-where-the-service-instance-runs>

即,在eureka服务器页面中,其显示如下:

<eureka.instance.appname> n/a (1)  (1) UP (1) - hostname:<spring.application.name>:port1

即使在zuulproxy客户端中,路由也被映射到服务ID(定义为eureka.instance.appname)。但是zuulproxy客户端功能区无法获取该服务ID的服务器列表。

客户端的application.properties:

management.endpoints.web.exposure.include=*
eureka.client.serviceUrl.defaultZone = http://${EUREKA_SERVER:localhost}:8761/eureka/
eureka.instance.leaseRenewalIntervalInSeconds= 1
eureka.instance.leaseExpirationDurationInSeconds= 2
spring.application.name=clientService
eureka.instance.appname=${spring.application.name}_${spring.profiles.active}_${variant:}

zuul的application.yml:

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    serviceUrl:
      defaultZone: http://${EUREKA_SERVER:localhost}:8761/eureka/
  instance:
    preferIpAddress: true

当客户端应用程序的spring.application.name与eureka.instance.appname不同时,Zuul / Ribbon无法从Eureka获取eureka客户端服务的服务器列表。 服务已在eureka中正确注册,但是在zuul的路线图中点击任何路线时,功能区将无法为任何服务加载服务器列表。 是否有使用zuul或功能区或eureka属性的配置,以使路由工作而无需手动为每个路由/ serviceID定义ribbon.listOfServers?因为,我认为这样做会失去动态路由的优势,这是在第一部分中拥有服务注册表的主要原因。

0 个答案:

没有答案