高并发实战:秒杀系统架构
秒杀的核心矛盾与三层防御——限流、缓存、异步削峰,以及库存扣减的准确性。
本节你将能
设计一套能扛瞬时洪峰的秒杀方案,讲清每一步在防什么。
核心要点
- 动静分离:商品页静态化(CDN),下单才打到后端。
- 层层限流:网关(令牌桶)、单机(信号量)、答题/验证码削掉脚本流量。
- 缓存抗读:库存预热到 Redis;写用 Lua 原子扣减,避免超卖。
- 异步下单:扣减成功即返回,订单入 MQ 异步落库,提升吞吐。
- 库存一致性:Redis 预扣 + 数据库最终一致;超时回补库存防少卖。
面试连招
常被追问:怎么防超卖?Redis 与 DB 库存不一致怎么办?热点 key 如何打散?
常见坑
直接查库扣库存导致 DB 被打挂;Lua 脚本写错造成超卖或少卖;回补逻辑缺失。