整理釜山服务器秒杀库存扣减异常(超卖/少卖)的排查实战。
秒杀库存扣减异常会造成超卖或少卖。以下是实战。
一、确认现象 - 超卖(卖出多于库存) - 少卖(有库存未卖出) - 订单与库存不一致
二、定位 1) 检查扣减逻辑与原子性 2) 分析缓存与数据库扣减顺序 3) 检查分布式锁与幂等 4) 查看异步落库与补偿
三、常见原因 1) 非原子扣减导致竞态 2) 缓存与数据库不一致 3) 锁失效或未加锁 4) 异步落库失败无补偿 5) 重复提交未幂等
四、处理 - 用原子扣减或 Lua 脚本 - 缓存与数据库一致性保障 - 加分布式锁并处理锁失效 - 异步落库加补偿与对账 - 下单幂等
五、优化 1) 预扣与回补机制 2) 对账与补偿任务 3) 全链路压测
六、预防 - 库存与订单一致性监控 - 对账告警 - 压测验证
总结:秒杀扣减异常要先看原子性与一致性,用原子扣减、锁与补偿解决并做对账。