本文目录#
背景#
熔断/限流是微服务可靠性建设的基础。Spring Cloud Circuit Breaker 抽象化了 Hystrix、Resilience4j、Sentinel 等实现,提供统一 API,方便逐步迁移与多种容错策略组合。
核心概念#
- CircuitBreakerFactory:创建不同命名的熔断器;
- Customizer:按名称定制配置,如超时、滑动窗口;
- Fallback:熔断后执行降级逻辑;
- Bulkhead:线程池/信号量隔离。
Resilience4j 示例#
1 |
|
监控与告警#
- 暴露 Actuator
/actuator/circuitbreakers
; - Micrometer 提供
resilience4j_circuitbreaker_state
、_calls
指标; - 设置告警:失败率、慢调用、重试次数。
落地建议#
- 与客户端重试策略区分责任,避免放大流量;
- 配置统一的熔断策略模板,并根据服务 SLA 细分;
- 定期演练故障(混沌工程),验证熔断与降级效果。
自检清单#
- 是否为关键依赖配置熔断与隔离?
- 是否将熔断状态纳入监控与报警?
- 是否验证降级逻辑的正确性与幂等性?
参考资料#
- Spring Cloud Circuit Breaker 文档:https://docs.spring.io/spring-cloud-circuitbreaker/docs/current/reference/html/
- Resilience4j 官方指南:https://resilience4j.readme.io/
- Netflix Hystrix 设计文档:https://github.com/Netflix/Hystrix/wiki
本作品系原创,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请注明出处。