降级规则就是设置当满足什么条件,对服务进行降级。
本章使用的Sentinel版本为1.8.4,版本之间会存在差异。

Sentinel提供了三个衡量条件
当资源请求数量达到最小请求数量,并且在统计时长的一个周期(单位毫秒,最大上限4900ms)内,其中的慢调用超过RT设定的最大响应时间的请求比例超过设定的比例阈值,则进入熔断状态,熔断时间内的请求将不再响应。熔断时间结束后,进入下一轮的循环判断。


RT的最大上限4900ms,超过此阈值都会算未4900ms,如果需要变更,则可以通过启动配置项来设置
-Dscp.sentinel.statistic.max.rt=xxx来配置
当资源的请求数量达到最小请求数,并且每个统计时长时段内异常总数占通过量比例阈值之后,资源进入降级状态,进入熔断时长。

演示异常:
int i=0;
@GetMapping("/hello3")
public String hello3() {
log.info("say hello------------3");
//制造一个异常,每3次请求,抛出一次异常,异常比例1/3
i++;
if(i%3==0){
throw new RuntimeException();
}
return "hello3";
}

在统计时长内,当请求数量满足配置的最小请求数,发生了的异常数量满足配置的异常数值时,进入熔断状态,熔断时长n秒。
