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: