hystrix客户端服务降级报错:org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.choose

博主在学习SpringCloud服务降级时遇到500错误,发现是由于1.x版本的教程中需要额外添加ribbon依赖,但在2.x和3.x版本中hystrix已包含该依赖。删除多余的ribbon依赖后,服务降级功能正常工作。通过关闭provider服务,成功实现了客户端服务降级。
摘要由CSDN通过智能技术生成

此问题耗费我两三个小时解决,淦!

从哔哩哔哩上面自学java,老师是狂神,springcloud是完全跟着狂神老师学的,有些东西确实被淘汰了,学了很多了才知道此技术被淘汰了,没办法,我觉得先学完吧,毕竟里面的意思都差不多,主要是代码不同。

学到springCloud服务降级,狂神老师教的springCloud、hystrix、eureka......等,都是1.x版本的,所以在老师的教程中,负载均衡都需要另外加入ribbon依赖。

但现在都出了3.x版本了,1.x版本的肯定过时了。

当然,我学习的时候用的是2.x版本的,2.x和3.x都不需要另外加ribbon依赖,因为hystrix依赖里面自带,所以导入了hystrix之后,其实不用再去另外导入ribbon依赖,没鸟用

不废话,进入标题报错正题:

当我们导入(spring-cloud-starter-netflix-hystrix)这个依赖的时候,可以可以看一下项目库中依赖:

我确实就只导入了 hystrix 这一个依赖,但这个依赖会自动将loadbalancer和ribbon都导入进去,hystrix 2.x版本是包含这两个的。

我运行了三个模块服务,一个eureka注册中心,一个provider提供者,一个是consumer消费者:

启动之后,当我们使用(conmuser消费者80)去获取数据库中数据时,我都还没体验到客户端服务降级呢,就给我一个500报错,淦!

 上面是浏览器端,下面是idea控制台报错:

 视频中弹幕并没有此问题解决方案,我也查询了百度,依然没有解决办法。

我突发奇想,想到去项目库中将ribbon依赖给删掉,但是我不清楚为什么删掉ribbon依赖之后,客户端服务降级就可以正常访问。

 将这个两个ribbon依赖删掉之后,重启所有服务,你就可以正常体验客户端服务降级。

可以看到,我就能正常查询数据了,浏览器不会报500错误,idea也不会报那个啥啥啥错误 。

然后客户服务降级嘛,需要将(provider提供者8001)服务关掉,并给用户信息反馈,保留(eureka注册中心7001) 和 (consumer消费者80),得出结果:

成功了。 客户端服务降级体验完成,继续往后学。

唉,越学到后面,一个bug报错问题能卡好久,淦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值