天天看点

springcloud组件之hystrix服务熔断,降级,限流

hystrix 简介

在分布式环境中,许多服务依赖项中的一些必然会失败。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。

Hystrix被设计的目标是:

对通过第三方客户端库访问的依赖项(通常是通过网络)的延迟和故障进行保护和控制。

在复杂的分布式系统中阻止级联故障。

快速失败,快速恢复。

回退,尽可能优雅地降级。

启用近实时监控、警报和操作控制。

复杂分布式体系结构中的应用程序有许多依赖项,每个依赖项在某些时候都不可避免地会失败。如果主机应用程序没有与这些外部故障隔离,那么它有可能被他们拖垮

接下来开打:整合springcloud

在工程中引用jar包:

熔断器原理

熔断器模式定义了熔断器开关相互转换的逻辑:

springcloud组件之hystrix服务熔断,降级,限流

服务的健康状况 = 请求失败数 / 请求总数.

熔断器开关由关闭到打开的状态转换是通过当前服务健康状况和设定阈值比较决定的.

1、当熔断器开关关闭时, 请求被允许通过熔断器. 如果当前健康状况高于设定阈值, 开关继续保持关闭. 如果当前健康状况低于设定阈值, 开关则切换为打开状态.

2、当熔断器开关打开时, 请求被禁止通过.

3、当熔断器开关处于打开状态, 经过一段时间后, 熔断器会自动进入半开状态, 这时熔断器只允许一个请求通过. 当该请求调用成功时, 熔断器恢复到关闭状态. 若该请求失败, 熔断器继续保持打开状态, 接下来的请求被禁止通过.熔断器的开关能保证服务调用者在调用异常服务时, 快速返回结果, 避免大量的同步等待.并且熔断器能在一段时间后继续侦测请求执行结果, 提供恢复服务调用的可能.