全链路压测落地方案¶
一、目标¶
在不影响线上业务的前提下,模拟真实流量,验证系统在峰值下的表现。
二、压测流程¶
- 业务梳理:核心接口、调用链。
- 数据准备:压测数据、影子库。
- 流量模型:按线上真实比例构造。
- 压测执行:从低到高逐步加压。
- 结果分析:找瓶颈、定容量。
三、关键技术点¶
1. 流量标记¶
压测请求带特殊标记(Header / TraceId),全链路透传。
2. 影子库 / 影子表¶
压测流量写到专门的表(如 order__shadow),不影响真实数据。
- 中间件根据标记路由到影子库。
- Redis 用单独的 key 前缀。
- MQ 用单独 Topic。
3. 数据构造¶
- 从线上脱敏导出数据。
- 造数平台批量生成。
- 数据要足够大,避免缓存命中失真。
4. 压测工具¶
- JMeter / Gatling。
- 公司内部压测平台(如字节 veFaaS、阿里 PTS)。
5. 监控¶
- 业务指标:QPS、RT、错误率。
- 系统指标:CPU、内存、GC、磁盘、网络。
- 中间件:DB 慢查询、Redis 命中率、MQ 堆积。
四、压测策略¶
1. 单接口压测¶
找单接口瓶颈。
2. 链路压测¶
模拟用户完整路径(下单 -> 支付 -> 通知)。
3. 峰值压测¶
瞬时打满,看系统能扛多高。
4. 浸泡压测¶
长时间低强度,看内存泄漏、连接泄漏。
五、注意事项¶
- 线上压测要在业务低峰。
- 准备好随时止损(限流、降级)。
- 通知相关团队。
- 压测数据不要污染真实业务。
面试加分
- 全链路压测的难点不在压测工具,而在流量隔离:让压测数据不污染线上。
- 影子表、影子 Topic、影子 Redis 是三板斧。