Circuit Breaker
断路器模式
断路器会暂停调用很可能失败的远程服务。过一段时间后,再用少量测试请求确认服务是否恢复。
closed -> failure threshold -> open -> cool-down -> half-open probe -> closed | open10 秒不调用远程服务closed -> failure threshold -> open -> cool-down -> half-open probe -> closed | openSRE另一个例子
支付服务失败五次后,断路器会打开 30 秒。结账会快速失败并显示清楚的提示。之后一次探测成功,断路器才关闭。
主要部分
- 01关闭状态
- 02失败次数与计算区间
- 03打开状态
- 04暂停时间
- 05半开测试请求
- 06替代结果与告警
什么时候用
远程依赖持续缓慢或发生故障时,可以使用断路器。要设置失败阈值、暂停时间、测试流量、替代结果和告警。
什么时候不要用
本地数据验证错误不需要断路器。它也不能取代重试。重试处理短暂故障,断路器则阻止很可能失败的调用。
代码里的名称
closed -> failure threshold -> open -> cool-down -> half-open probe -> closed | open 上线前要检查
检查接口约定、任何情况下都不能破坏的规则、授权与输入限制。测试重试、重复执行只生效一次、超时与部分失败。验证数据完整性、兼容性、监控、恢复与回到上一版。
预期结果:为这套系统设计或检查 断路器模式 (Circuit Breaker),并让数据保持正确、安全且容易维护。 用户场景:支付服务失败五次后,断路器会打开 30 秒。结账会快速失败并显示清楚的提示。之后一次探测成功,断路器才关闭。 技术概念或控制措施:断路器模式 (Circuit Breaker)。 适用理由:远程依赖持续缓慢或发生故障时,可以使用断路器。要设置失败阈值、暂停时间、测试流量、替代结果和告警。 不应使用的情况:本地数据验证错误不需要断路器。它也不能取代重试。重试处理短暂故障,断路器则阻止很可能失败的调用。 工程要求:定义输入、输出、接口约定,以及任何情况下都不能破坏的规则。说明授权与输入检查范围。定义失败、超时、重试和重复执行只生效一次的规则。也要定义数据迁移与兼容限制。 运营要求:加入监控信号与隐藏敏感数据的日志。设置容量上限并写好操作手册。测试恢复与回到上一版的流程。 验收标准:接口约定与失败路径测试通过。重试或部分失败时,数据与授权规则仍正确。性能上限、监控、恢复与回到上一版的方法都已验证。 证据与限制(证据边界):没有一份官方标准能涵盖全部内容。不同团队、平台或框架的用法可能不同。 待确认:程序运行环境、数据位置、流量形态、数据一致需求和安全边界。也要确认兼容周期、服务目标(SLO)与恢复上一版的限制。
检查这份需求
请 AI 编程助手检查当前如何使用 断路器模式 (Circuit Breaker)。 定义:断路器会暂停调用很可能失败的远程服务。过一段时间后,再用少量测试请求确认服务是否恢复。 生产环境检查:检查接口约定、任何情况下都不能破坏的规则、授权与输入限制。测试重试、重复执行只生效一次、超时与部分失败。验证数据完整性、兼容性、监控、恢复与回到上一版。 修改程序前,先列出看到的证据、缺口、严重程度,以及最小且安全的修正。