除流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。
由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。
Sentinel 熔断降级支持以下几种策略:
- 秒级 RT 模式:若持续进入 5 个请求,它们资源的平均响应时间都超过阈值(秒级平均 RT,以 ms 为单位),资源调用会被熔断。在接下的降级时间窗口(在降级规则中配置,以 s 为单位)之内,对这个方法的调用都会自动地返回(抛出
DegradeException
)。 - 秒级异常比例模式:当资源的每秒异常数占通过量的比值超过阈值之后,资源进入降级状态,即在接下的降级时间窗口(在降级规则中配置,以 s 为单位))之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是
[0.0, 1.0]
,代表 0% - 100%。 - 分钟级异常数模式:当资源最近 1 分钟的异常数目超过阈值之后会进行熔断。