升级到 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 (将#修改为@)