微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

升级到 spring-cloud-starter-netflix-eureka-client:jar:2.2.7.RELEASE 后 Eureka Ribbon Client 不工作

如何解决升级到 spring-cloud-starter-netflix-eureka-client:jar:2.2.7.RELEASE 后 Eureka Ribbon Client 不工作

因此,我们将 spring-cloud-netflix 库从 void decider(int type) { std::unique_ptr<Printer> prt{}; if (type == 1) { prt = std::make_unique<CSV>(); } else { prt = std::make_unique<TXT>(); } prt->header(); } 升级2.2.2.RELEASE。我没想到会出现严重的问题,但在测试时我一直看到这个错误

2.2.7.RELEASE

我们还将 Netflix Zuul 与 spring Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: dummy-service at com.netflix.loadbalancer.LoadBalancerContext.getServerFromloadBalancer(LoadBalancerContext.java:483) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0] at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:184) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0] at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:180) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0] 一起使用。

进一步调试后,我发现 spring-cloud-starter-netflix-zuul:2.2.7.RELEASEServerList 属性的实现实际上是 DynamicServerListLoadBalancer 而不是 ConfigurationBasedServerList(它应该包装 DomainExtractingServerList )。这一观察结果也与 spring-cloud 文档中的预期行为相矛盾 here

当 Eureka 与 Ribbon 结合使用时(即两者都在类路径上),ribbonServerList 会被 discoveryEnablednIWSServerList 的扩展覆盖,该扩展从 Eureka 填充服务器列表。它还用 NIWSdiscoveryPing 替换了 IPing 接口,NIWSdiscoveryPing 委托 Eureka 来确定服务器是否已启动。认安装的 ServerList 是 DomainExtractingServerList。

我还注意到我的 discoveryEnablednIWSServerList 正在以传递方式下载 spring-cloud-starter-netflix-eureka-client:jar:2.2.7.RELEASE,它没有 spring-cloud-netflix-eureka-client:jar:3.0.2EurekaRibbonClientConfiguration这是故意的吗?

DomainExtractingServerList

我期望 2.x 可以与 3.x 一起使用,因为该库正在被传递性地拉取,但这里没有发生这种情况。 顺便说一句,我还尝试在我的 pom 文件添加内联 +- org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:jar:2.2.7.RELEASE:compile [INFO] | +- org.springframework.cloud:spring-cloud-netflix-hystrix:jar:2.2.7.RELEASE:compile [INFO] | +- org.springframework.cloud:spring-cloud-netflix-eureka-client:jar:3.0.2:compile 以覆盖 3.0.2,但随后遇到了一些未找到类定义错误

在这种情况下有什么建议?我应该在我的应用程序中创建一个 spring-cloud-netflix-eureka-client:jar:2.2.7.RELEASE 以便获得正确的 EurekaRibbonClientConfiguration 注入吗? ServerList 似乎不仅仅是创建一个 EurekaRibbonClientConfiguration bean 实现。 我无法使用 ServerList,因为我也在使用 Zuul,并且 Spring-cloud-zuul 在 2.2.7.RELEASE 处达到最大值。

我真的需要继续使用 Spring-cloud、Zuul、Ribbon 和 Eureka。

更新这是我的 pom 文件

3.0.2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。