熔断与降级:断路器三态与降级预案
2026/8/24大约 3 分钟
亿级规模系统系列 · 阶段 5 · 流量防护 · 第 31/49 篇 · 🚧 占位待学
上一篇:《集群限流:总水位怎么算》
下一篇:《隔离舱与系统自适应保护》
学习大纲:《QPS 过万与亿级消息系统设计学习总纲》
状态:待学习。 本文为占位文档:知识点清单、实验与验收标准已就绪,正文待按「先学习、先实验、再撰写」补全。
对应总纲单元:阶段 5 · 单元 5.4
一、本文要解决的问题
下游已经挂了,还每次都调它一遍、等一遍超时吗?熔断器说:别调了,直接失败,过一会儿再试试看。而降级回答更难的问题——失败之后给用户返回什么?「有损服务」的精髓是保核心、弃枝叶,每个降级点都要提前想好。
二、知识点清单
- 断路器三态:Closed(正常)→ Open(熔断,快速失败)→ Half-Open(放行探测)的状态机与转换条件
- 熔断策略三种:慢调用比例、异常比例、异常数——统计窗口与最小请求数的意义
- 恢复机制:熔断时长后的半开探测,成功多少个才关闭、失败多少个重新打开
- 降级的三个层次:读降级(返回缓存 / 默认值)、写降级(异步化 / 记账后续补偿)、功能降级(关闭推荐栏保下单)
- 降级预案的编制:核心链路逐环节问「它挂了返回什么」,形成预案表与开关
三、动手实验(学习时必须真跑)
- Sentinel 配慢调用比例熔断(RT > 500ms 占 80% 触发),下游人为变慢触发熔断,观察快速失败的 RT 骤降
- 等待熔断窗口结束观察半开探测:下游恢复后断路器闭合,流量回正常
- 为核心链路写一份三级降级预案(正常 / 降级 / 保底),实现一个降级开关(本地缓存兜底)并演练
四、验收标准(全部通过才进入下一篇)
五、写作提示(补正文时遵守)
- 开篇问题驱动;结构走「是什么 → 为什么 → 怎么做 → 背景知识」
- 所有代码、命令、输出必须先在本机跑通再写入,不得杜撰
- 版本口径以总纲环境清单为准(Spring Boot 3.x / MySQL 8.0 / Redis 8.x / RocketMQ 5.3.x / Kafka 4.3 / ShardingSphere 5.5.3)
- 涉及版本敏感结论时标注出处与时间
本篇完成后,把文首导航块的「🚧 占位待学」去掉,并在总纲处打卡。