跳转至

全链路压测落地方案

一、目标

在不影响线上业务的前提下,模拟真实流量,验证系统在峰值下的表现。

二、压测流程

  1. 业务梳理:核心接口、调用链。
  2. 数据准备:压测数据、影子库。
  3. 流量模型:按线上真实比例构造。
  4. 压测执行:从低到高逐步加压。
  5. 结果分析:找瓶颈、定容量。

三、关键技术点

1. 流量标记

压测请求带特殊标记(Header / TraceId),全链路透传。

X-Pressure-Test: true

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 是三板斧。