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

修改时间设置:

原文地址:https://www.cnblogs.com/fengli9998/p/8493642.html