隔离舱与系统自适应保护
2026/8/24大约 3 分钟
亿级规模系统系列 · 阶段 5 · 流量防护 · 第 32/49 篇 · 🚧 占位待学
上一篇:《熔断与降级:断路器三态与降级预案》
下一篇:《Sentinel 实战:规则体系与生产落地》
学习大纲:《QPS 过万与亿级消息系统设计学习总纲》
状态:待学习。 本文为占位文档:知识点清单、实验与验收标准已就绪,正文待按「先学习、先实验、再撰写」补全。
对应总纲单元:阶段 5 · 单元 5.5
一、本文要解决的问题
限流管「进多少」,隔离管「进的流量之间会不会互相踩死」。非核心接口(如推荐列表)把共享线程池占满,核心交易跟着陪葬——这是比外部洪峰更常见的死法。舱壁模式把船舱隔开,一舱进水不沉全船。
二、知识点清单
- 舱壁模式(Bulkhead):线程池隔离(独立线程池 + 独立队列)vs 信号量隔离(计数器,轻量但防不了阻塞)
- 核心与非核心的物理隔离:独立线程池 → 独立实例 → 独立集群,隔离粒度的三档
- 队列长度与拒绝策略:无界队列 = 缓慢死亡(OOM / 超时堆积),有界队列 + 快速失败才是慈悲
- 系统自适应保护(Sentinel 系统规则):按整体 Load / CPU / 平均 RT / 入口 QPS 综合限流,让系统自己「踩刹车」
- 隔离 vs 限流的互补:限流防外部洪峰,隔离防内部传染;两者都要
三、动手实验(学习时必须真跑)
- 把示例系统的非核心接口(推荐)拆到独立线程池:压推荐接口到饱和,验证下单接口 QPS 不受影响(对照共享线程池版)
- 制造无界队列事故:线程池配无界队列 + 慢任务,观察队列堆积与内存增长;改有界队列 + 快速失败对比
- Sentinel 系统自适应规则实验:配 Load / RT 规则,压测观察系统自动降压行为
四、验收标准(全部通过才进入下一篇)
五、写作提示(补正文时遵守)
- 开篇问题驱动;结构走「是什么 → 为什么 → 怎么做 → 背景知识」
- 所有代码、命令、输出必须先在本机跑通再写入,不得杜撰
- 版本口径以总纲环境清单为准(Spring Boot 3.x / MySQL 8.0 / Redis 8.x / RocketMQ 5.3.x / Kafka 4.3 / ShardingSphere 5.5.3)
- 涉及版本敏感结论时标注出处与时间
本篇完成后,把文首导航块的「🚧 占位待学」去掉,并在总纲处打卡。