影子体系:在生产环境安全地压测
2026/8/24大约 3 分钟
亿级规模系统系列 · 阶段 8 · 压测与容量 · 第 44/49 篇 · 🚧 占位待学
上一篇:《全链路压测:为什么单机压测会骗人》
下一篇:《可观测体系:指标、告警与容量水位》
学习大纲:《QPS 过万与亿级消息系统设计学习总纲》
状态:待学习。 本文为占位文档:知识点清单、实验与验收标准已就绪,正文待按「先学习、先实验、再撰写」补全。
对应总纲单元:阶段 8 · 单元 8.2
一、本文要解决的问题
想测真实容量就得在生产压,可压测数据混进生产库会把用户数据污染、把下游统计搞乱。影子体系的思路是「染色流量全程走影子路径」:影子表、影子 topic、影子缓存 key——生产的环境,隔离的数据。
二、知识点清单
- 流量染色:入口给压测请求打标(header / RPC 上下文),标记全链路透传(跨线程、跨 MQ、跨异步的坑)
- 影子路由规则:DB 影子表(前缀 shadow_)、MQ 影子 topic、Redis 影子 key 前缀、日志影子隔离
- 写隔离与读打通:写必须全影子;读影子数据怎么保证与真实分布一致(全量同步 or 抽样镜像)
- 压测保生产:压测开关一键停止、压测流量限流兜底、告警降噪(压测流量不触发用户告警)
- 第三方依赖怎么办:挡板(mock)回放、专用沙箱账号——不能拿压测流量打真支付
三、动手实验(学习时必须真跑)
- 给示例系统加染色标记(header 全链路透传,含异步线程与 MQ 消息头)
- 实现影子路由:压测流量写 shadow_ 前缀表、发 shadow topic、用 shadow key 读缓存
- 验证生产数据零污染:压测前后对生产表做 checksum;验证压测一键停止开关
四、验收标准(全部通过才进入下一篇)
五、写作提示(补正文时遵守)
- 开篇问题驱动;结构走「是什么 → 为什么 → 怎么做 → 背景知识」
- 所有代码、命令、输出必须先在本机跑通再写入,不得杜撰
- 版本口径以总纲环境清单为准(Spring Boot 3.x / MySQL 8.0 / Redis 8.x / RocketMQ 5.3.x / Kafka 4.3 / ShardingSphere 5.5.3)
- 涉及版本敏感结论时标注出处与时间
本篇完成后,把文首导航块的「🚧 占位待学」去掉,并在总纲处打卡。