为模拟hystrix的服务降级,我创建了客户端和服务端微服务模拟。
在服务端中,我使用线程睡眠模拟高并发请求造成的线程拥挤,并创建了fallback method作为服务降级时返回的方法。
然后在客户端使用feign标注接口,在controller调用该方法。
结果,服务端因为线程睡眠, 造成主线程结束,而子线程还在睡眠,所以报了sleep interapter错误
客户端因为服务端未返回数据报了超时错误。
解决方法:Thread.sleep()不能在异步方法中使用 ,使用Thread.currentThread().wait()替代。
最后,客户端正常接收fallback method返回的字符串。