vlambda博客
学习文章列表

茅台秒杀系统方案设计

一、 秒杀的演进路线

1、石器时代:在战斗时会出现【合击】现象,就算大家敏捷素质不同,在倒计时28秒时,同时选择攻击一个目标,也会极大概率发动攻击群殴一个目标。特别是在玩家的PK战,经常出现群体合击或者人宠合击,造成强大的杀伤,瞬间打飞或者打晕对手。


2、游戏倒计时模式,强大的杀伤往往只在一秒没过就结束,所以这类瞬间或几下击败对手就被称作:【秒杀】


3、促销活动模式:

网上竞拍的一种新方式。所谓“秒杀”,发布一些超低价格的商品,用户在同一时间网上抢购的一种销售方式。通过销售价格低、数量有限的商品,同时配合各种运营策略:预约、会员、限购、风控,聚集人气,给平台带来关注度和巨大流量。

二、 茅台抢购业务特点及需求
01 业务特点

茅台秒杀系统方案设计
02 业务需求

茅台秒杀系统方案设计

三、系统设计


01 架构


茅台秒杀系统方案设计
02 挑战

高并发带来的高流量,对高性能、高可用、数据一致性的要求。

茅台秒杀系统方案设计

四、系统优化
01 并发读优化

茅台秒杀系统方案设计
02 并发写优化

Nginx配置虚拟库存精准放行1W白名单用户抢购1W瓶茅台,同时在关键流程上随机sleep起到削峰作用。

茅台秒杀系统方案设计

五、优化结果

通过CDN缓存、nginx黑名单IP拦截、nginx黑名单用户拦截、虚拟库存精确放行白名单用户、核心流程随机sleep削峰等优化。最终抢购时缓存和拦截效率为70%,nginx透传到应用层比例为30%,最大化减轻后端系统压力,更好的保护后端系统。 

六、思考