秒杀系统库存防超卖设计

校校

11-13 浏览 4 收藏 0

假设你负责一个秒杀系统,库存扣减怎么设计才能不超卖?

校校建议

多层防护避免超卖。

1、预热库存到Redis,使用Lua脚本原子完成库存判断、扣减、用户购买标记,避免并发带来超卖;

2、扣减成功发送MQ,异步生成订单;

3、数据库层做兜底,使用update stock set stock=stock‑1 where stock>0条件更新,同时建立用户+商品唯一索引,拦截重复下单;

4、增加定时对账任务,比对Redis库存与数据库订单,修复库存不一致。