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无变化

启动类加注解:

Spring Cloud(四)之Hystrix

service:

Spring Cloud(四)之Hystrix

启动项目.eureka,client(两个),ribbon,先试一下.负载均衡,然后停掉一个client.可以看出到另外的client输出了error方法里面的内容!

在试试Feign项目.由于Feign内嵌入了 Hystrix,所以需要在application中开启.如下:

#开启Hystrix
feign.hystrix.enabled=true

controller无变化

service:

Spring Cloud(四)之Hystrix

创建service实现接口FeignService,方法如下

Spring Cloud(四)之Hystrix

启动像是试试.和ribbon项目一样.停掉一个client之后看看是否出现错误提示!

Hystrix还有一个仪表盘功能.ribbon和feign实现方式一样.我这里用feign演示

Spring Cloud(四)之Hystrix

启动项目输入http://localhost:9003/hystrix

Spring Cloud(四)之Hystrix

红色框内输入地址,及请求地址即可

就可以看到监控页面了.再次新窗口输入请求.会发现监控有变化!

相关文章:

  • 2021-01-02
  • 2021-01-02
  • 2019-12-13
  • 2021-08-14
  • 2018-09-25
  • 2019-05-28
  • 2019-02-23
  • 2019-12-12
猜你喜欢
  • 2019-07-15
  • 2021-06-28
  • 2021-09-19
  • 2018-09-23
  • 2017-12-11
  • 2018-04-20
  • 2020-03-24
  • 2020-03-26
相关资源
相似解决方案