Java秒殺的解決方案

一、秒殺業務特性:

1、低廉價格;

2、大幅推廣;

3、瞬間售空;

4、一般是定時上架;

5、時間短、瞬時併發量高;

二、秒殺實現技術挑戰:

1、秒殺技術挑戰

假設某網站秒殺活動只推出一件商品,預計會吸引上萬人蔘加活動,也就是說最大併發請求數會是上萬,,秒殺系統要面臨的是上萬的併發量;

2、秒殺活動只是網站營銷的一個附加活動,這個活動具有時間短,併發訪問量大的特點,如果和網站原有應用部署在一起,勢必會對現有系統造成衝擊,稍有不慎就有可到導致整個網站癱瘓;(所以要單獨部署,避免影響到其他的服務)

三、秒殺的技術實現:

1、前端

 a、使用動靜分離、將靜態資源存放到第三方文件服務器中實現cdn加速,目的減輕秒殺搶購帶寬;

 b、當用戶點擊秒殺按鈕的時候,應該將按鈕disabled 防止重複提交;

 c、使用複雜的圖形驗證碼防止機器模擬搶購;

 d、秒殺商品的詳情頁使用 nginx + lua + openrestry實現靜態化頁面;

2、網關

 a、ratelimter 、Nginx、hystrix 、redis實現限流,令牌桶 + 漏桶算法,對用戶秒殺請求實現限流和服務保護;

 b、用戶黑名單 和 白名單攔截;

3、後端

 a、服務降級、隔離、熔斷;

 b、從redis中獲取秒殺的令牌(能夠獲取到令牌就能夠秒殺成功,否則就秒殺失敗);

 c、異步使用MQ執行修改庫存操作;

 d、提供一個根據用戶信息查詢秒殺結構的接口;

 4、項目部署

 Nginx + lvs 實現服務高可用和集羣;

5、其他點

分時段秒殺

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章