1 降级规则概念介绍
3个降级策略:RT平均响应时间、异常比例、异常数
1.1 RT平均响应时间
设置RT=1(ms),时间=10(s)
表示1个请求的响应时间超过1ms时(即1s响应时间回复的请求数少于1000个时),接下来10s进行降级,10s后恢复正常再次判断`
默认RT设置上限是4900ms,超过的也按照4900处理.
扩容需要在启动时增加启动配置
-Dcsp.sentinel.statistic.max.rt=xxx
1.2 异常比例
对资源的请求访问达到异常比例的阈值(0.0~1.0)计算后,在设置降级的时间内所有请求自动返回
1.3 异常数
1分钟统计的异常大于设置的阈值时,降级时间内自动熔断,降级时间需要大于1分钟不然熔断结束后会重复熔断
2 降级规则案例演示
这里只做异常比例和异常数演示,只需在order服务的controller添加一个测试方法即可
/**
* 服务容错组件sentinel的降级测试:配合测试3种策略(RT平均响应时间、异常比例、异常数)中的异常比例、异常数
*/
int i = 0;
@RequestMapping("/sentinel/degrade")
public String degrade() {
i++;
// 此时异常比例为1/3=0.3333……
if(i % 3 == 0) {
throw new RuntimeException();
}
return "服务容错组件sentinel的降级测试:配合测试3种策略(RT平均响应时间、异常比例、异常数)中的异常比例、异常数";
}
间、异常比例、异常数)中的异常比例、异常数";
}