1.1.什么是Hystrix
Hystrix是一个用于处理分布式系统的延迟和容错的开源库。Hystrix主要用于处理分布式系统中复杂多变的服务依赖调用失败、超时、故障等情况,保证一个服务依赖出问题的情况下,提供一个服务预期的、可处理的备选响应(FallBack),避免微服务整体级联故障,以提高分布式系统的弹性。
1.2.Hystrix的作用是什么
Hystrix旨在执行以下操作:
1. 提供保护并控制延迟和失败,以及通过第三方客户端库(通常是通过网络)访问依赖项导致的失败。
2. 切断复杂的分布式系统中的级联故障。
3. 快速响应并快速恢复。
4. 回退并在可能的情况下正常降级。
5. 启用近乎实时的监视,警报和操控。
1.3.Hystrix能解决什么问题
Hystrix在分布式项目中主要用于处理:
1. 服务降级
2. 服务熔断
3. 服务限流
4. 接近实时地监控
2.1.服务熔断机制
首先对应服务熔断我们要理解“服务雪崩”的概念,服务雪崩是多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,就是所谓的“雪崩”。
熔断机制是应对雪崩效应的一种微服务链路保护机制。
当扇出链路的某个微服务不可用或者响应时间太长时,就会通过熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。
3.Hystrix服务降级
3.1.服务降级机制
服务降级是从网站整体的负载考虑,当某个服务在某一时间内承受大量的服务请求,而需要极大的资源消耗,需要关闭当前系统的某些服务,做资源的扩充。牺牲单个服务的运行,当再次访问这单个服务的时候,通过服务降级处理,返回给客户设定的默认缺省值。
相当于弃军保帅,维护的是整个系统的可用性。