介绍
通常一个分布式系统是由许多相互依赖的服务所组成的,这些被依赖的服务极易出现故障或响应延迟的问题。如果其中某个服务失败则会影响其他服务并进一步降低整体性能,并导致应用程序其他功能无法正常访问,在最坏的情况下,整个应用程序将崩溃。
Hystrix框架通过提供熔断和降级来控制服务之间的交互依赖,通过隔离故障服务并停止故障的级联效应以提高系统的总体弹性。
Hystrix的历史
2011年Netflix API团队开发了Hystrix,2012年Hystrix不断发展和成熟,并且Netflix内的许多团队都采用了它。如今,每天在Netflix上通过Hystrix执行数以千亿计的线程隔离和数以千计的信号隔离调用。
Hystrix的作用是什么?
- 为第三方客户端提供保护,控制延迟和失败(通常依赖网络)等故障。
- 停止复杂的分布式系统中的级联故障。
- 快速失败,迅速恢复。
- 回退并在可能的情况下正常降级。
- 启用近乎实时的监视,警报和配置控制。
Hystrix解决什么问题?
复杂分布式体系结构中的应用程序具有数十种依赖关系,每种依赖关系不可避免地会在某个时刻失败(因为不可预知的故障)。如果应用程序未与这些外部故障隔离开来,那么外部的错误会影响到自己,以至于将自己拖垮。