配置FeignClient以使用env变量的url而不禁用Eureka

时间:2017-09-27 17:03:36

标签: spring netflix-eureka spring-cloud-netflix netflix-feign spring-cloud-feign

我目前的环境是使用Eureka的Spring Cloud设置,我在应用程序中有多个Feign客户端。我想要做的是允许我的大多数Feign客户端通过发现服务器解析他们的服务,但是为了使用我当前正在开发的本地实例而阻止一两个这样做。我正在运行我正在开发的服务和本地客户端应用程序。

我希望客户端应用程序将发现用于所有服务发现,并覆盖一个Feign客户端以仅使用我本地运行的服务。

有没有办法在不禁用客户端的Eureka的情况下执行此操作?我已经探讨了这两个问题(https://trac.osgeo.org/gdal/wiki/BuildingOnUnixone)并且没有设法让listOfServers字段产生任何影响,除非我禁用Eureka。如果在处理这个问题上很重要,我就把我想要连接的服务没有注册到eureka。

1 个答案:

答案 0 :(得分:1)

您可以指定特定FeignClient的网址,而无需使用属性<ribbonclientname>.ribbon.NIWSServerListClassName属性禁用Eureka客户端。

假设用于指导路由的服务ID为testA。您可以在不禁用Eureka客户端的情况下定义以下属性。

testA:
  ribbon:
    NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
    listOfServers: ${url for your test server}

如果您将com.netflix.loadbalancerConfigurationBasedServerList指定为NIWSServerListClassName,则您的Feign客户端中的功能区客户端将使用通过listOfServers属性提供的地址,而不会禁用尤里卡。