← 返回文章列表
解决方案 3 分钟阅读 炬鲸团队

电商大促保障:全链路压测、告警分级与故障快恢

大促流量是平时的几倍到几十倍,故障每分钟都是损失。本文讲如何用链路追踪找慢点、压测找瓶颈、按 SLO 设告警分级,并做好回滚限流预案。

大促的难点不在扩容,在看不见

大促保障最容易犯的错是只盯着扩容:加机器、加缓存、加带宽。但真正让人在大促夜里失眠的不是容量不够,而是「不知道瓶颈在哪、不知道什么时候开始变慢、出事之后不知道先回滚哪个」。这三件事,都是可观测性的问题。

容量可以通过压测提前算出来,但线上慢点、热点、依赖抖动是压测模拟不出来的,只能靠实时的链路追踪和指标来发现。可观测平台在大促里的角色,就是把「能加多少台机器」升级成「能多快发现问题、多快定位、多快恢复」。

用链路追踪找出真正的慢点

大促前用全链路压测模拟峰值流量,压测数据进平台后,看的不只是整体吞吐,而是链路里每个服务的 P99 延迟和依赖关系。一个典型的发现是:整体 TPS 达标,但某个下游服务的 P99 已经顶到超时阈值,正式大促时它就会成为木桶最短的板。

下单 → 库存扣减 → 优惠计算 → 支付 → 订单落库
            ↑ P99 1.8s(超时阈值 500ms)

定位到慢点后,再决定是加缓存、加实例还是改代码,而不是凭感觉全量扩容。

按 SLO 设告警分级

大促期间的告警要分得比平时更细。先给核心链路定 SLO,比如「下单成功率 ≥ 99.9%、P99 ≤ 500ms」,再把告警按影响分级:

  • P0:下单成功率跌破阈值,电话 + 短信 + 值班群,1 分钟响应
  • P1:核心服务 P99 超时,企业微信 / 钉钉,15 分钟响应
  • P2:非核心服务异常,邮件,1 小时处理

关键是把阈值提前一天调严,避免「正式流量进来才报警」。同时把无关紧要的低优先级告警静默,让值班人只看到真正需要处理的。

预案也要可观测

故障快恢靠预案,预案要提前演练,演练要可观测。三个常见动作:

  1. 限流:入口网关按服务限流,触发时平台要能看到限流次数和拒绝率,判断是挡流量还是误伤
  2. 降级:把推荐、积分等非核心功能一键降级,平台记录降级前后的成功率和延迟对比
  3. 回滚:发布时留好上一版本,回滚后平台要能立刻确认错误率和延迟回落

把这几个动作的观测指标提前建在仪表盘上,大促夜里就不用现拼数据。

大促保障清单

  1. 全链路压测一次,找出每个核心服务的 P99 和容量上限
  2. 核心链路 SLO 和告警分级提前一天生效,低优先级告警静默
  3. 限流、降级、回滚预案演练一遍,关键指标上仪表盘
  4. 值班表排好,每个团队的值班人和升级路径明确
  5. 事后复盘:把大促期间的高频告警和慢点沉淀成下一年度的改造项