秒杀系统:有N种商品,每种商品有不同的库存量。在某个时刻开始允许购买,当用户点击购买按钮之后锁定商品,付款失败的时候退回商品。
秒杀是非常常见的面试题,很多面试官上来就让面试者设计一个秒杀系统,面试者当然也是“身经百战”,很快可以给出熟背的“标准答案”。 但是,秒杀还是相对简单的热点库存扣减问题,因为扣减的库存量不大。更加典型的热点库存扣减问题是春节红包雨,同一个资金池数亿人抢红包。2020年春节,阿里巴巴针对春节红包预估150万QPS的峰值压力,设计了一个技术方案并申请专利。
秒杀系统的特点就是瞬时高并发,需要提升系统性能:
- 页面静态化
- CDN 加速
- 缓存
- MQ 异步处理
- 限流
- 分布式锁
存在问题:
- 不同分桶之间,库存消耗不均,可能导致部分用户无法扣减库存,但其他用户可扣减库存,从而引发客诉。
小量多次地分派库存,从而缓解分桶库存消耗不均问题。