RT
- RT:当资源的响应时间超过最大RT(以ms为单位,最大RT即最大响应时间)之后,资源进入准降级状态。如果接下来1s内持续进入5个请求(最小请求数),它们的RT都持续超过这个阈值,那么在接下来的熔断时长之内,就会对这个方法进行服务降级。
时间窗口:降级持续时间
如下图,设置响应时间为0.1s,降级持续时间为8s
测试每0.01s请求一次
public class test {
public static void main(String[] args) throws Exception {
RestTemplate restTemplate =new RestTemplate();
for(int i =0;i<100 ;i++){
restTemplate.getForObject("http://localhost:8081/index",String.class);
Thread.sleep(10);
}
}
}
结果,第6次请求异常:在第一次请求后发现超过阈值,于是在1s内持续进入5个请求,所以一共有6次请求!
异常比例
- 异常比例:当资源的每秒请求数大于等于最小请求数,并且异常总数占通过量的比例超过比例阈值时,资源进入降级状态
测试,设置异常比例为0.2
写一个测试,模拟0.5的异常,此时异常比例大于0.2
int i=0;
@GetMapping("/index")
public String index(){
i++;
if(i%2==0) throw new RuntimeException("模拟异常!");
return this.port;
}
异常数
- 异常数:当资源近1分钟的异常数目超过阈值(异常数)之后会进行服务降级。注意由于统计时间窗口是分钟级别的,若熔断时长小于60s,则结束熔断状态后仍可能再次进入熔断状态
*这里时间窗口要大于60s
设置意思:在1分钟内异常超过5次进行降级,降级时间为70s