Hystrix翻译成中文是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与Hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystrix。所以,Hystrix的功能便是自我保护机制,我们将其称之为断路器。
在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,这个就是Hystrix需要做的事情。Hystrix提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个依赖同时出现问题时保证系统依然可用。
在Ribbon项目引入pom依赖包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
application.properties无变化
启动类加注解:
service:
启动项目.eureka,client(两个),ribbon,先试一下.负载均衡,然后停掉一个client.可以看出到另外的client输出了error方法里面的内容!
在试试Feign项目.由于Feign内嵌入了 Hystrix,所以需要在application中开启.如下:
#开启Hystrix feign.hystrix.enabled=true
controller无变化
service:
创建service实现接口FeignService,方法如下
启动像是试试.和ribbon项目一样.停掉一个client之后看看是否出现错误提示!
Hystrix还有一个仪表盘功能.ribbon和feign实现方式一样.我这里用feign演示
启动项目输入http://localhost:9003/hystrix
红色框内输入地址,及请求地址即可
就可以看到监控页面了.再次新窗口输入请求.会发现监控有变化!