Reliability & Operations
Circuit breaker
熔断器模式
Circuit breaker 是一种设计模式,用于检测故障并阻止失败持续发生,常用于维护期、外部系统临时故障或意外问题。

核心思想:把受保护的函数调用包在 circuit breaker 对象中,持续监控失败率。一旦失败达到阈值,断路器就会“跳闸”,后续调用直接返回错误,不再执行真实调用。通常还会配合监控告警。
为什么需要 circuit breaking?
软件系统经常发起远程调用。与内存调用不同,远程调用可能失败或超时。更糟的是,当多个调用方不断请求一个不可用的服务时,会耗尽关键资源,导致 cascading failures。
States
Closed
正常状态,所有请求都通过。如果失败超过阈值,进入 open。
Open
直接返回错误,不执行真实调用。经过一段 timeout 后会进入 half-open。
Half-open
允许少量请求探测。如果成功,回到 closed;如果仍失败,回到 open。