Appearance
L03-09 熔断:厂商挂了不能拖垮整个系统
全局中心内容:熔断是把「持续失败」变成「快速失败」,为系统争取恢复时间。 全局讲解主线:雪崩场景 → 熔断三态 → 粒度选择 → 降级方案 → 半开探测 → 编码 → 演练。
P1 · 产出页
中心内容:按厂商 + 工具粒度的熔断器与降级链。
- 讲解技巧
- 开场场景:模型厂商故障,每次调用 30 秒超时,100 个 Agent 全部卡死。
- 结论:没有熔断,单次故障会变成全站故障。
- 时长:20s
P2 · 熔断三态
中心内容:Closed → Open → Half-Open。
页面内容:状态转换图与触发条件
讲解技巧
- 重点讲为什么要有 Half-Open:直接切回 Closed 会在厂商刚恢复时被二次打垮。
- 讲清触发条件:用失败率 + 最小请求数双条件,样本太少时不要误判。
时长:6min
P3 · 熔断粒度
中心内容:按厂商熔断,必要时按工具细分。
- 讲解技巧
- 提醒粒度太粗的问题:一个工具挂了把整个厂商熔断,会误伤其他正常工具。
- 给建议:先按厂商,出问题再按工具细分。
- 时长:4min
P4 · 降级方案
中心内容:熔断之后做什么,比熔断本身更重要。
页面内容:降级阶梯(备用厂商 → 便宜模型 → 缓存 → 规则兜底 → 明确失败)
讲解技巧
- 强调「必须提前设计好降级链」:熔断开着却没有降级方案,等于直接停服。
- 提醒降级要在响应里标记,让用户知道当前是降级模式。
时长:6min
P5 · 备用厂商切换
中心内容:同能力多厂商注册,主用失败自动切换。
- 讲解技巧
- 强调备用厂商的能力要对等,否则答案质量断崖下降,还不如明确报错。
- 提醒切换要有冷却,别在两家之间来回抖动。
- 时长:5min
P6 · 编码:Resilience4j
中心内容:CircuitBreaker + TimeLimiter + 降级方法。
页面内容:配置与注解用法
讲解技巧
- 提醒:熔断和超时要配合,先超时快速失败,失败率才能被统计到。
时长:6min
P7 · 演练
中心内容:主动注入故障,验证熔断真的生效。
- 讲解技巧
- 给出演练方法:把厂商地址指向一个不可达的端口,观察是否在预期时间内熔断。
- 强调没有演练过的熔断配置,等于没有。
- 时长:5min
P8 · 避坑与小结
中心内容:熔断指标也要纳入监控,别「悄悄熔断了没人知道」。
- 讲解技巧
- 引出下一节:还有一种更贵的故障——死循环——03-10。
- 时长:2min
讲师备忘
| 项 | 内容 |
|---|---|
| 课前必做 | 准备状态转换图;准备故障演练脚本 |
| 最容易超时处 | P4 降级链,容易被追问细节 |
| 学员最常问 | 「阈值设多少?」答:失败率 50% + 最少 10 次调用起步 |
| 现场备用 | 无第二厂商 → 用本地桩服务演示 |