图中的服务B因为某些原因失败,变得不可用,所有对服务B的调用都会超时。当对B的调用失败达到一个特定的阀值(5秒之内发生20次失败是Hystrix定义的缺省值), 链路就会被处于open状态, 之后所有所有对服务B的调用都不会被执行, 取而代之的是由断路器提供的一个表示链路open的Fallback消息. Hystrix提供了相应机制,可以让开发者定义这个Fallbak消息 ,进行提示,提高用户体验性。
下面来配置一下熔断机制,在供应者和消费者模式下配置:
既然是返回给用户提示,那就要在消费者下进行
首先写个UserClient用户的接口
然后写UserClientImpl对接口进行实现,对方法进行异常设置(设置返回默认值,UserClient用户接口fallback=UserClientImpl.class)
Controller请求访问:
将服务中心,供应者,消费者项目启动,正常启动下的页面显示:
扫描二维码关注公众号,回复:
5066381 查看本文章
将供应者项目停止,再访问消费者,显示的效果如下: