记录一次模拟hystrix服务降级时,线程睡眠导致的子线程中断错误

为模拟hystrix的服务降级,我创建了客户端和服务端微服务模拟。

在服务端中,我使用线程睡眠模拟高并发请求造成的线程拥挤,并创建了fallback method作为服务降级时返回的方法。

然后在客户端使用feign标注接口,在controller调用该方法。

结果,服务端因为线程睡眠, 造成主线程结束,而子线程还在睡眠,所以报了sleep interapter错误

客户端因为服务端未返回数据报了超时错误。

解决方法:Thread.sleep()不能在异步方法中使用 ,使用Thread.currentThread().wait()替代。

最后,客户端正常接收fallback method返回的字符串。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值