秒殺系統注意點(面試題記)
問題結構
問題結構主要是以下三個:
1、可能存在的問題
2、如何應對,儘可能的說出技術細節
安全性
不要提前暴露搶購連結
可以使用定時任務替換指令碼,來更新搶購頁面,放出真實連結
穩定性
如何應對高併發,保證系統穩定性和可用性
1、可能存在的問題
伺服器負載過大,無法及時處理
2、如何應對
- 負載均衡:進行分流,減少單機需要處理的量
- 優化頁面:動態頁面轉靜態頁面;壓縮js、css等指令碼
- 使用佇列,設定閾值,快取請求,提高響應速度,分別返回失敗,佇列已滿和加入佇列成功三種返回。同時,使用佇列也可以更好的保證一致性問題
一致性
超賣等資料不一致問題
1、可能存在的問題
高併發環境下,可能導致對於關鍵資料的計算出問題,比如超賣
2、如何應對
- 可以使用佇列,變併發為序列,降低出錯率
- 可以給關鍵資料加鎖,不過redis的鎖機制不是特別的友好