Hystrix介绍

介绍

Hystrix [hɪst’rɪks],中文含义是 豪猪

Hystrix是一个延迟和容错库,旨在隔离远程系统、服务和第三方库的访问点,停止级联故障,并在不可避免发生故障的复杂分布式系统中实现恢复能力

Hystrix是Netflix开源的一款 容错框架,具有 服务降级、服务熔断 功能

=======现已停更=======

一句话介绍

当 服务提供者 响应超时、报错、崩溃时,服务调用者 不会一直等待,调用 备用方法

官网

https://github.com/Netflix/Hystrix/wiki

功能

1) 延迟和容错

停止级联故障。回退和优雅降级。故障快速恢复。

支持 线程池隔离 和 信号量隔离

2) 实时操作

实时监控和配置更改

3) 并发

并行执行。支持并发的请求缓存

Hystrix设计目标

  • 对来自依赖的延迟和故障进行防护和控制——这些依赖通常都是通过网络访问的
  • 阻止故障的连锁反应
  • 快速失败并迅速恢复
  • 回退并优雅降级
  • 提供近实时的监控与告警

设计原则

  • 防止任何单独的依赖耗尽资源(线程)
  • 过载立即切断并快速失败,防止排队
  • 尽可能提供回退以保护用户免受故障
  • 使用隔离技术(例如隔板,泳道和断路器模式)来限制任何一个依赖的影响
  • 通过近实时的指标,监控和告警,确保故障被及时发现
  • 通过动态修改配置属性,确保故障及时恢复
  • 防止整个依赖客户端执行失败,而不仅仅是网络通信

如何实现这些设计目标

  • 使用 命令模式 将所有对外部服务(或依赖关系)的调用包装在 HystrixCommand 或HystrixObservableCommand 对象中,并将该对象放在单独的线程中执行;
  • 每个依赖都维护着一个线程池(或信号量),线程池被耗尽则拒绝请求(而不是让请求排队)。
  • 记录请求成功,失败,超时和线程拒绝。
  • 服务错误百分比超过了阈值,熔断器开关自动打开,一段时间内停止对该服务的所有请求。
  • 请求失败,被拒绝,超时或熔断时执行降级逻辑。
  • 近实时地监控指标和配置的修改。

原文出处:/show_1IX1Q2Mvmk8Q.html