上一题下一题

Resilience4j 中 failure rate 与 slow call rate 分别如何计算,为什么慢调用也可能触发熔断?

进阶版
来源:alibaba高级工程师限流与降级策略滑动窗口统计慢调用熔断Resilience4j熔断器
草稿该题目为草稿状态,前台公开题库中不可见。
答案解析

Resilience4j 的熔断器会在滑动窗口内统计调用情况,并且只有当记录的调用数达到 minimumNumberOfCalls 后,才会计算这两个比例。

Failure rate(失败率) :失败调用数 ÷ 纳入统计的总调用数 × 100%。哪些异常算作失败,可以通过异常记录和忽略规则配置。 Slow call rate(慢调用率) :耗时超过 slowCallDurationThreshold 的调用数 ÷ 纳入统计的总调用数 × 100%。

当失败率达到或超过 failureRateThreshold,或者慢调用率达到或超过 slowCallRateThreshold 时,熔断器都可能从关闭状态转为打开状态。因此,调用即使最终成功,只要耗时过长,也可能触发熔断。

原因是慢调用通常意味着下游响应变差;它们还会长时间占用线程、连接等资源,增加请求排队和超时风险,进一步放大系统压力。熔断慢调用可以提前限制流量,避免局部性能问题演变成级联故障。

登录后查看完整内容