开发者学堂课程【精通 Spring Cloud Alibaba: SentineI 服务熔断降级的策略】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/634/detail/10149
SentineI 服务熔断降级的策略
1、Sentinel 支持服务的熔断降级
(1)熔断类似于保险丝,如果超出了我们的阈值的情况下,在一定的时间内不会执行我们的业务逻辑直接执行我们的服务降级的方法。
(2)服务降级:走本地 fallback 方法返回有-一个友好的提示给客户端,不会真实的执行我们的业务逻辑。
2、服务降级的策略:
(1) rt (平均响应时间)
(2) 错误比例
(3)错误次数
3、熔断降级概述
除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。
由于调用关系的复杂性,如果调用链路中的某个资源不稳定,最终会导致请求发生堆积。
Sentinel 熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高) , 对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出 DegradeException )。
4、降级策略
(1)平均响应时间( DEGRADE_ GRADE _RT):当1s 内持续进入5个请求,对应时刻的平均响应时间(秒级)均超过阈值( count , 以 ms 为单位) ,
那么在接下的时间窗口( DegradeRule 中的 timeWindow , 以 s 为单位)之内,对这个方法的调用都会自动地熔断(抛出DegradeException ).
注意 Sentinel 默认统计的 RT 上限是4900 ms ,超出此阈值的都会算作4900 ms ,若需要变更此.上限可以通过启动配置项-Dcsp. sentinel.statistic.max.rtxox 来配置
(2)异常比例( DEGRADE GRADE_ EXCEPTION RATIO):当资源的每秒请求量>=5,并且每秒异常总数占通过量的比值超过阈值( DegradeRule 中的count )之后,资源进入降级状态,即在接下的时间窗口( DegradeRule 中的timeWindow , 以 s 为单位)之内,对这个方法的调用都会自动地返回。异常比率的阈值范围是[0.0,1.0] ,代表0%- 100%。
(3)异常数(DEGRADE_ GRADE EXCEPTION, COUNT):当资源近1分钟的异常数目超过阈值之后会进行熔断。注意由于统计时间窗口是分钟级别的,若 timeWindow 小于60s ,则结束熔断状态后仍可能再进入熔断状态。