这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
特性分析
做秒杀系统前,先不要急着选 Redis、MQ 或数据库锁。真正重要的是分析秒杀业务的特性,因为架构方案必须服务于这些特性。
流量特征
秒杀流量和普通电商流量不同:
- 开始前流量逐渐升高,用户频繁刷新。
- 开始瞬间出现尖峰,远高于平时流量。
- 库存售罄后仍会有大量重试。
- 成功请求很少,失败请求占绝大多数。
因此,系统设计重点不是“处理每一个请求”,而是尽早过滤无效请求,把核心资源留给可能成功的请求。
库存特征
秒杀库存有三个特点:
- 数量有限。
- 扣减必须准确。
- 支付超时后可能释放。
库存不是一个简单数字。它涉及活动库存、已占用库存、已支付库存、取消释放库存。不同状态之间需要清晰流转。
链路拆分
秒杀链路可以拆成:
活动页访问 -> 资格校验 -> 限流排队 -> 库存预扣 -> 创建订单 -> 支付确认 -> 库存确认每一步都可以单独限流、降级和监控。不要把所有逻辑塞进一个下单接口。
风险特征
秒杀天然吸引黑产:
- 脚本高速请求。
- 多账号批量抢购。
- 代理 IP 绕过限流。
- 提前探测接口和库存。
所以防刷不是后置功能,而是秒杀链路的一部分。学完本章后,你应该能把秒杀问题拆成流量、库存、订单和风控四条线。