一、异常信息
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