springcloud之Hystrix

Posted 小虾米的java梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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方法。

修改时间设置:

 

以上是关于springcloud之Hystrix的主要内容,如果未能解决你的问题,请参考以下文章

springcloud费话之Eureka集群

springcloud费话之断路器(hystrix in feign)

SpringCloud 教程 之 SpringCloud概述

5.springcloud微服务架构搭建 之 《springboot集成Hystrix》

SpringCloud 进阶之SpringCloud

带你入门SpringCloud 之 通过SpringCloud Bus 自动更新配置