1、Hystrix出现的背景
从上面看来,Hystrix避免了雪崩效益,对于失败的服务可以快速失败。
2、为了解决雪崩效应的解决方案:
(1)超时机制
(2)断路器模式Hystrix
3、Hystrix的demo
根据之前的步骤:
(1)添加依赖
(2)添加注解,测试代码
这里分两种情况:首先在restTemplat+ribbon中使用:
这个可以在controller层添加@HystrixCommand注解,也可以在service中添加,但是前提是:
所对应的方法与服务失败写的fallback的方法两者的参数跟返回值要一致。
比如:
服务提供者ProviderService工作的时候,返回的是正常的业务数据。当这个提供者出现问题时,返回下面的hiError方法中的内容。
在利用Feign来调用服务的时候,我们如何使用断路器呢
Feign是自带断路器的,在D版本的Spring Cloud中,它没有默认打开。需要在配置文件中配置打开它,在配置文件加以下代码:
在写的服务调用接口中,添加fallback:
编写fallback的类:
4、知识点:
断路器Hystrix什么时候出现:5秒钟失败20次就会打开。
Hystrix默认的调用服务的超时时间是1秒,如果一秒服务没相应,则调用fallback方法。
修改时间设置: