一、秒殺業務特性:
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、其他點
分時段秒殺