網(wǎng)購秒殺系統(tǒng)架構(gòu)設計
場景描述:
秒殺是電商系統(tǒng)常見的一種營銷手段:將熱賣的庫存量少的商品(通常只有一件)以極低的價格,在特定的時間點開始出售。比如幾百塊錢的蘋果手機,幾百塊錢錢的電腦等。 因為商品價格誘人且數(shù)量有限,如同線下饑餓營銷一樣的道理,很多用戶會選擇在秒殺活動開始前涌入網(wǎng)站, 等到秒殺活動開始的一瞬間,點下購買按鈕(在此之前購買按鈕不可以點擊)。這些商品因為在活動開始的一秒內(nèi)就被賣光了,所以被稱作秒殺。
秒殺雖然對銷售提升有很多好處,也能給消費者帶來利益,但是對電商系統(tǒng)架構(gòu)技術(shù)有不小的壓力,秒殺活動帶來的并發(fā)訪問用戶卻是平時的數(shù)百倍甚至上千倍。秒殺時的最高并發(fā)訪問量往往需要更多的服務資源進行支撐,但平日系統(tǒng)又沒有這么大的人流量,如果采用以往的單體架構(gòu)或者沒有對服務和鏈路進行合理的分區(qū)處理就需要浪費很多的資源,而這些資源其實在絕大部分時候都是用不著的,魁鯨科技開發(fā)的電商定制系統(tǒng)一般都會必須設計部署專門的秒殺系統(tǒng)結(jié)合彈性云計算進行專門應對。
常見方法:
1.秒殺系統(tǒng)獨立部署
為了避免因為秒殺活動的高并發(fā)訪問而拖垮整個系統(tǒng),可將秒殺系統(tǒng)獨立開發(fā)部署這樣即使秒殺系統(tǒng)崩潰了,也不會對整個造成任何影響。同時這樣架構(gòu)也有利于資源節(jié)省、彈性伸縮。
2.緩存和異步隊列
利用Redis、MQ等技術(shù)對前端打過來的流量進行緩沖處理
3.彈性計算
阿里云、騰訊云、華為云都支持彈性計算和部署方式,結(jié)合目前容器技術(shù)可以根據(jù)壓力彈性的上線/下線
4.動態(tài)生成隨機下單頁面
URL 為了避免用戶直接訪問下單頁面 URL,需要將該 URL 動態(tài)化,即使秒殺系統(tǒng)的開發(fā)者也無法在秒殺開始前訪問下單頁面的URL。
同時在前端頁面進行防刷點擊的處理,后端亦可以進行冪等處理。
