Sentinel 控制台配置了降级规则,即断路器模式。
降级策略
1)RT(平均响应时间):当1s内持续进入5个请求,对应时刻的平均响应时间(秒级)均超过阀值(count,以ms为单位),那么在接下来的时间窗口(DegradeRule中的timeWindow,以s为单位),对这个方法的调用都会自动熔断(抛出DegradeException)。
注意:Sentinel默认RT最大时间为4900毫秒,可通过-Dcsp.sentinel.statistic.max.rt=xxx修改。
2)异常比例(DEGRADE_GRADE_EXCEPTION_RATIO):当资源的每秒请求量>=5,并且每秒异常总数占通过量的比值超过阀值(Degrade中的count)之后,资源进入降级状态,即在接下来的时间窗口(DegradeRule中的timeWindow,以s为单位)之内,对这个方法的调用都会自动地返回。异常比率的阀值范围[0.0,1.0],代表0%~100%。
3)异常数(DEGRADE_GRADE_EXCEPTION_COUNT):当资源近1分钟的异常数目超过阀值之后会进行熔断,注意由于统计数据的时间窗口是分钟级别的,若timeWindow小于60s,则结束熔断状态后仍可能再进入熔断状态。
注意:异常降级仅针对业务异常,对Sentinel限流降级本身的异常(BlockException)不生效,为了统计异常比例或异常数,需要通过Tracer.trace(ex)记录业务异常。