Spring Cloud整合Sentinel

时间:2025-03-26 09:10:29
@RestController @RequestMapping("/api/order2") @Slf4j public class Order2Controller { @GetMapping @SentinelResource( value = "ordering2", fallbackClass= Order2Controller.class, fallback = "ordering_fallback") public String ordering(Integer id) { log.debug("进来了"); if (id == 4) { throw new IllegalArgumentException("参数异常"); } return "下单成功"; } //? 什么时候触发? ordering_fallback 有什么要求吗? public static String ordering_fallback(Integer id, Throwable ex) { log.debug("降级"); return "降级了"; } @PostConstruct //初始化执行 降级规则 private void initDegradeRule(){ List<DegradeRule> rules = new ArrayList<>(); DegradeRule rule = new DegradeRule("ordering2") .setGrade(CircuitBreakerStrategy.ERROR_COUNT.getType()) // Max allowed response time 错误数量 .setCount(2) // Retry timeout (in second) 熔断10s .setTimeWindow(20) .setMinRequestAmount(10) //最小请求数 .setStatIntervalMs(10*1000);//10s 统计时长,统计的窗口(单位为 ms) rules.add(rule); DegradeRuleManager.loadRules(rules); } }