1. 熔断器的状态机中 Closed/Open/Half-Open 的转换条件,与超时、重试的组合策略?
请说明熔断器的状态机(Closed/Open/Half-Open)的转换条件,以及与超时、重试的组合策略?
- 熔断器三状态转换
- 滑动窗口与阈值
- 与超时、重试的组合
熔断器(Circuit Breaker)用状态机保护下游依赖:Closed(关闭)——正常状态,请求正常放行,统计失败率;当失败率超过阈值(如 50% 且达到最小请求数)或连续失败达到阈值,进入 Open(打开)——熔断打开,直接快速失败(不调用下游),返回降级/错误,同时启动冷却时间(cooldown);冷却结束后进入 Half-Open(半开)——允许少量探测请求(如 1 个)试探下游,若探测成功则恢复到 Closed(关闭,重置计数),若失败则回到 Open(重新熔断,重置冷却)。转换条件:Closed→Open 由失败率/失败次数阈值触发;Open→Half-Open 由冷却时间触发;Half-Open→Closed 由探测成功触发;Half-Open→Open 由探测失败触发。与超时、重试组合:熔断是"快速失败"手段,超时是"等待上限",重试是"重试可能成功"。策略:超时限制单次等待,重试在重试窗口内做有限次重试(指数退避+抖动),熔断在整体失败率高时停止放行避免级联;熔断打开时不应重试(会再次触发),恢复后重试;熔断与重试需合理配置避免"重试放大熔断"。
熔断器是"断路器"语义:失败率触顶就断开,冷却后试探恢复。状态机由失败阈值、冷却时间、探测结果驱动。与超时、重试组合时,超时管单次、重试管次数、熔断管整体,三者配合实现快速失败与防雪崩。