sentinel降级误解

public void initDegradeRule(){
        List<DegradeRule> rules=new ArrayList<>();
        DegradeRule rule=new DegradeRule();
        rule.setResource("degradeTest");
        rule.setCount(5);
        rule.setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT);
        rule.setTimeWindow(80);
        rules.add(rule);
        DegradeRuleManager.loadRules(rules);
    }

 

 public Object fallback(Throwable e){
        e.printStackTrace();
        return "fall back response";
    }

    @SentinelResource(value="degradeTest",fallback = "fallback")
    @RequestMapping("sentinel-degrade")
    public Object degradeSentinel(){
        System.out.println(i);
        if (i/2==0){
            throw new RuntimeException();
        }
        return "healthy response";
    }

 这里80秒内5次异常触发熔断,并不是说超过5次才触发fallback方法,而是每次都会,只不过第5次开始fallback方法拿到的是一个DegradeException:

 

 

posted @ 2020-11-06 00:03  l2c  阅读(338)  评论(0)    收藏  举报