秒杀

作者: 北京黄小胖 | 来源:发表于2021-03-31 06:18 被阅读0次

    秒杀的业务场景分3个阶段,
    1.准备预热阶段,用户不断的刷新页面查看秒杀是否开始
    2.秒杀阶段,限时、限价、限量的销售,会产生瞬时的高并发流量
    3.结算阶段,完成秒杀的数据工作,如:数据一致性、异常处理、商品回仓处理
    准备阶段可以将商品、人员、库存 等数据进行redis热点缓存,页面静态化,尽量减少动态元素,
    秒杀阶段的高并发通过限流、削峰、异步消息处理,限流方面,客户端进行限时提交、防止重复提交处理,
    服务端的话,由于负载均衡层处理并发能力要强于应用层不少,像Nginx、redis分别能处理10万+、5万+的并发,而服务器如tomacat和数据库分别只有800、1000的并发,而像瞬时高并发流量并且大多数请求都属于无效请求,去扩展服务成本比较高,所以在负载均衡层进行库存限流比较好,在预热时redis缓存库存,
    在nginx中执行lua脚本做库存预减校验,库存小于0直接返回秒杀结束,校验通过的发送MQ消息,再异步处理MQ消息,校验活动时间,是否黑名单,扣减缓存的秒杀库存,生成有效token,
    结算阶段,客户端通过短轮询查询是否获得了有效token,即秒杀资格,获取到秒杀资格进行秒杀结算,结算验证token加入秒杀购物车,如果token失效,回滚缓存中的秒杀商品库存,最后提交订单,删除token,秒杀完成

    相关文章

      网友评论

          本文标题:秒杀

          本文链接:https://www.haomeiwen.com/subject/vmznhltx.html