异常数 (DEGRADE_GRADE_EXCEPTION_COUNT):当资源近 1 分钟的异常数目超过阈值之后会进行熔断。注意 由于统计时间窗口是分钟级别的,若 timeWindow 小于 60s,则结束熔断状态后仍可能再进入熔断状态。
异常数是按分钟来统计的,所以时间窗口必须大于等于60s
上图就是表示,在1分钟内统计异常数超过阈值了,开始触发降级,打开断路器,等时间窗口结束,关闭降级
主要讲控制台规则的使用,项目构建用以下的项目
https://blog.csdn.net/qq_41712271/article/details/117596349?spm=1001.2014.3001.5501
1 随便写两个测试方法,模拟运行时异常
@RestController
public class Controller_1 {
@RequestMapping("/test_1")
public Integer fangfa_1() {
//从数组随机获取一个元素
//先随机产生一个下标再获取元素
//Integer[] inArr = {0,1,0,3,0,5,0,7,0,9};
//int index = (int) (Math.random() * inArr.length);
//return 500/inArr[index];
return 900 / 0;
}
@RequestMapping("/test_2")
public String fangfa_2() {
return "bbbbbbbbbbbbbb";
}
}
2 配置降级规则,异常数为5,时间窗口为65秒
3 请求接口,请求一次为by zero异常,请求两次也是报错,等请求到五次后就会出现服务降级,直接快速失败,等超过65s窗口期后,再请求接口,又会开始 异常数策略统计