Load balancer does not have available server for client在Zuul中报错的解决办法

29 篇文章 1 订阅
18 篇文章 0 订阅
问题:

Spring Cloud 的路由Zuul,在访问对应的路由时,uri返回500错误,并且检查服务器报错:
Forwarding error
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: service-finance

解决办法:

pom文件中的引用"spring-cloud-netflix-eureka-client"改为starter的 “spring-cloud-starter-netflix-eureka-client”

解决思路:

看提示错误堆栈发生在netfix client进行load balance的时候。因为zuul默认开启负载均衡,需要实现loadbalanceclient接口。而ribbon需要结合具体的客户端去实现。ribbon-eureka的loadbalancer可以实现此接口。查看引用的包,没有包含ribbon-eureka工具库。如下图所示:
图1 zuul包下只引用的ribbon工具包,没有引用ribbon客户端。

在这里插入图片描述
图2为netflix纯粹的客户端,也没有与ribbon结合的工具库。
在这里插入图片描述

图3为starter-netflix-eureka-client库,包含了ribbon-eureka工具库。因此引用stater的eureka client库,就可以解决报错问题。
在这里插入图片描述

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值