Skip to content

Circuit Breaker 模块

熔断器模式实现,用于防止级联故障。当服务连续失败达到阈值时打开熔断器,后续请求直接拒绝而非继续尝试,一段时间后进入半开状态尝试恢复。

快速开始

装饰器使用

python
from FQBase.Foundation import circuit_breaker

@circuit_breaker(name="user_api", failure_threshold=5, recovery_timeout=60)
def get_user(user_id):
    return user_service.get(user_id)

手动管理

python
from FQBase.Foundation import CircuitBreaker

breaker = CircuitBreaker(
    name="payment_api",
    failure_threshold=5,
    success_threshold=2,
    recovery_timeout=60
)

result = breaker.call(call_payment_service)

状态机

CLOSED ──(失败次数 ≥ threshold)──► OPEN
  ▲                                  │
  │                              (超时)
  │                                  │
  └──(成功次数 ≥ threshold)── HALF_OPEN ──(失败)──► OPEN

核心功能

功能说明
三态状态机CLOSED、OPEN、HALF_OPEN
失败计数连续失败达到阈值打开熔断器
恢复超时OPEN 状态等待后进入 HALF_OPEN
指标记录详细记录调用成功、失败、拒绝次数
线程安全所有操作线程安全
装饰器支持@circuit_breaker 装饰器
上下文管理器with CircuitBreaker() 语法

文档索引

文档说明
README本文档,模块索引
框架模块架构与核心概念
架构设计与工作流程
API完整API参考
使用使用指南与示例
开发指南开发环境、调试、测试
最佳实践开发建议与注意事项
设计设计决策文档
FAQ常见问题解答