一、异常信息

java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: service-one

二、分析原因

我的这个异常出现场景是这样的(我采用的是Spring Cloud中Feign组件来实现服务间调用的):

  有两个服务A和B,A调用B(A->B)。

场景一:先启动了A,再启动了B。但是这时候,怎么都调用不到B。

场景二:先启动B,再启动A,这是可以正常调用。然后挂掉B,再重启。之后就怎么也调用不到B了。

也就是从注册中心,获取不到B注册的相关地址信息。

三、解决方案

在application.yml或bootstrap.yml中加入如下配置:

--设置property ribbon.eureka.enable=false将会明确的让Eureka的ribbon失效。
--我们这里需要手动开启它

ribbon: eureka: enabled:
true
04-08 07:54