参考Spring Cloud官方文档第1三、1四、15章架构
Netflix提供了一个叫Hystrix的类库,它实现了断路器模式。在微服务架构中,一般一个微服务会调用多个其余的微服务。一个相对低层级的服务失败可能形成上层应用的级联失败,服务访问量越大失败率越高。当断路打开的时候,这个调用就被终止了。打开的断路能够阻止级联失败。微服务
为了使用Hystrix仪表盘,须要在Spring Boot main class上用@EnableHystrixDashboard注解标注。ui
上代码spa
在原先的ribbon-demo基础上修改3d
以上是在Ribbon中使用Hystrix,而Feign默认就支持Hystrix。下面看一下在Feign中如何使用Hystrix。blog
若是Hystrix在classpath中,而且feign.hystrix.enabled=true的话,那么Feign将用断路器包装全部的方法。文档
注意:在Spring Cloud Dalston以前的版本中,若是classpath中有Hystrix,那么Feign默认回为全部的方法加上断路器。这种默认的行为在Spring Cloud Dalston版本中被改变了,取而代之的是可选的。it
Hystrix支持回调,当断路器打开的时候回回调默认的代码。为了回调指定的方法,能够在@FeignClient中设置fallback属性,它的值是类的名字。例如:class
若是须要得到回调触发的缘由,可使用@FeignClient的fallbackFactory属性。基础
上代码
基于先前的feigen-demo工程改造
其它的不变
我的感受仍是用@EnableCircuitBreaker+@HystrixCommand的方式更方便一点儿
至于断路器仪表盘仍是跟前面同样配置