秒杀的业务场景分3个阶段,
1.准备预热阶段,用户不断的刷新页面查看秒杀是否开始
2.秒杀阶段,限时、限价、限量的销售,会产生瞬时的高并发流量
3.结算阶段,完成秒杀的数据工作,如:数据一致性、异常处理、商品回仓处理
准备阶段可以将商品、人员、库存 等数据进行redis热点缓存,页面静态化,尽量减少动态元素,
秒杀阶段的高并发通过限流、削峰、异步消息处理,限流方面,客户端进行限时提交、防止重复提交处理,
服务端的话,由于负载均衡层处理并发能力要强于应用层不少,像Nginx、redis分别能处理10万+、5万+的并发,而服务器如tomacat和数据库分别只有800、1000的并发,而像瞬时高并发流量并且大多数请求都属于无效请求,去扩展服务成本比较高,所以在负载均衡层进行库存限流比较好,在预热时redis缓存库存,
在nginx中执行lua脚本做库存预减校验,库存小于0直接返回秒杀结束,校验通过的发送MQ消息,再异步处理MQ消息,校验活动时间,是否黑名单,扣减缓存的秒杀库存,生成有效token,
结算阶段,客户端通过短轮询查询是否获得了有效token,即秒杀资格,获取到秒杀资格进行秒杀结算,结算验证token加入秒杀购物车,如果token失效,回滚缓存中的秒杀商品库存,最后提交订单,删除token,秒杀完成
秒杀
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 写在前面 很多小伙伴反馈说,高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至...
- 前言 很多小伙伴反馈说,高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至很多...
- 写在前面 很多小伙伴反馈说,高并发专题学了那么久,但是,在真正做项目时,仍然不知道如何下手处理高并发业务场景!甚至...