Skip to content

Latest commit

 

History

History
23 lines (21 loc) · 1007 Bytes

SecKill.md

File metadata and controls

23 lines (21 loc) · 1007 Bytes

电商系统中,如何实现秒杀功能?如何解决商品的超卖问题?

从前端到后端的过程

查询 -> 下单 -> 扣库存 -> 更新订单 -> 付款 -> 发货

具体步骤

假设秒杀系统的流量为10w+
  1. 网络隔离:
  • 部署独立域名、服务器,与原网络完全隔离
  1. 静态资源:
  • 页面请求静态化,不需要请求应用服务器
  1. 增大带宽:
  • 10w+需要20G带宽,需要租借新带宽
  1. URL动态生成:
  • 下单url动态生成,绑定random,防止提前下单、刷单
  1. 按钮置灰+JS版本号:
  • 秒杀开始前按钮置灰,为了秒杀开始以后能请求成功,需要每次请求URL的时候用js?v=xx带版本号,防止浏览器、CDN反向代理缓存。
  1. 定时上架
  2. 下单前检查是否已下单
  3. 防止超卖:i. 加乐观锁; ii.尝试扣库存
  4. 秒杀器校验码防破解
  5. 防刷:对同一个UUID或者item 做页面缓存
  6. 添加请求入队列,作为网关限流