springcloud之Hystrix

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方法。

修改时间设置:

 

posted @ 2018-03-02 15:52  小虾米的java梦  阅读(201)  评论(0编辑  收藏  举报