RT

  • RT:当资源的响应时间超过最大RT(以ms为单位,最大RT即最大响应时间)之后,资源进入准降级状态。如果接下来1s内持续进入5个请求(最小请求数),它们的RT都持续超过这个阈值,那么在接下来的熔断时长之内,就会对这个方法进行服务降级。

时间窗口:降级持续时间

如下图,设置响应时间为0.1s,降级持续时间为8s
image.png
测试每0.01s请求一次

  1. public class test {
  2. public static void main(String[] args) throws Exception {
  3. RestTemplate restTemplate =new RestTemplate();
  4. for(int i =0;i<100 ;i++){
  5. restTemplate.getForObject("http://localhost:8081/index",String.class);
  6. Thread.sleep(10);
  7. }
  8. }
  9. }

结果,第6次请求异常:在第一次请求后发现超过阈值,于是在1s内持续进入5个请求,所以一共有6次请求!
image.png

异常比例

  • 异常比例:当资源的每秒请求数大于等于最小请求数,并且异常总数占通过量的比例超过比例阈值时,资源进入降级状态

测试,设置异常比例为0.2
image.png

写一个测试,模拟0.5的异常,此时异常比例大于0.2

  1. int i=0;
  2. @GetMapping("/index")
  3. public String index(){
  4. i++;
  5. if(i%2==0) throw new RuntimeException("模拟异常!");
  6. return this.port;
  7. }

异常数

  • 异常数:当资源近1分钟的异常数目超过阈值(异常数)之后会进行服务降级。注意由于统计时间窗口是分钟级别的,若熔断时长小于60s,则结束熔断状态后仍可能再次进入熔断状态

image.png

*这里时间窗口要大于60s

设置意思:在1分钟内异常超过5次进行降级,降级时间为70s