秒殺系統實現總結

  • 秒殺系統面臨的技術挑戰:
  1. 訪問量大,對網絡帶寬要求高
  2. 系統如何支持瞬間的高併發
  3. 如何防止商品超賣
  4. 如何防刷、防黃牛等
  • 解決方案:
  1. CDN緩存,nginx+lua實現活動數據緩存2秒
  2. 高併發:限流、防刷
  3. 超賣:使用redis實現原子性的操作
  4. 防刷:openresty lua 實現限流、驗證黑名單等
  5. 黑名單機制:手動/自動收集ip、userid信息,加入到黑名單庫或者黑洞
  • 部署方案:
    nginx +(必要的時候可以按照userid hash) 10臺openresty + tomcat + codis集羣

  • 秒殺活動維護:

  1. 活動類型:秒殺、搶購、預售
  2. 支持商品類型:套裝、單品
  3. 預約時間、秒殺時間等
  4. 是否需要驗證手機號
  • 秒殺後臺邏輯-需要控制的幾個點:
  1. 搶購總量
  2. 相同活動的相同商品,購物車裏只能存在一條
  3. 每人最大搶購次數
  4. 每人每次最大購買數量(一次只支持購買一個套裝)
  • 其它實現搶購的思路:
  1. 小米的排隊方案:http層接收請求後放入隊列
  2. 通過走促銷:redis lua實現原子性的驗證邏輯,成功後,寫入隊列(隊列可以降級)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章