最近各大電商網(wǎng)站不斷的推出各類秒殺活動(dòng),讓人應(yīng)接不暇,作為一個(gè)IT程序員我們關(guān)注的是,如果讓你去設(shè)計(jì)一個(gè)秒殺系統(tǒng),你會(huì)怎么做?
一. 秒殺活動(dòng)帶來的挑戰(zhàn):
1. 對(duì)現(xiàn)有網(wǎng)站構(gòu)成沖擊
秒殺活動(dòng)為一個(gè)網(wǎng)站營(yíng)銷的附加活動(dòng),這個(gè)活動(dòng)具有時(shí)間短,并發(fā)訪問量大的特點(diǎn),如果和原有應(yīng)用系統(tǒng)部署在一起,有可能會(huì)使整個(gè)網(wǎng)站癱瘓。
2. 高并發(fā)下應(yīng)用服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載
用戶在秒殺開始前,會(huì)不斷刷新瀏覽器頁面以保證不會(huì)錯(cuò)過秒殺,這些請(qǐng)求如果按照一般網(wǎng)站應(yīng)用架構(gòu),訪問應(yīng)用服務(wù)器、連接數(shù)據(jù)庫(kù),會(huì)對(duì)應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器造成極大的負(fù)載壓力。
3. 突然增大的網(wǎng)絡(luò)及服務(wù)器帶寬
假設(shè)商品頁面大小200K(圖片大小、CSS、JS),有1W人同時(shí)參加活動(dòng),那么需要的網(wǎng)絡(luò)和服務(wù)器帶寬是2G(200 * 10000), 這些網(wǎng)絡(luò)帶寬是因?yàn)槊霘⒒顒?dòng)新增的,超過網(wǎng)站平時(shí)使用的帶寬。
4. 防止直接下單
秒殺的游戲規(guī)則是到了秒殺時(shí)間才能開始對(duì)商品下單購(gòu)買,在此時(shí)間點(diǎn)之前,只能瀏覽商品信息,不能下單。而下單頁面也只是一個(gè)普通的URL,如果得到這個(gè)URL,不要等到秒殺開始就可以下單了,這顯然不行。
二. 秒殺活動(dòng)應(yīng)對(duì)策略:
1. 秒殺系統(tǒng)獨(dú)立部署
為了避免因?yàn)槊霘⒒顒?dòng)的高并發(fā)訪問而拖垮整個(gè)網(wǎng)站,可將秒殺系統(tǒng)獨(dú)立部署,使其與網(wǎng)站分離,即使秒殺系統(tǒng)崩潰了,也不會(huì)對(duì)生產(chǎn)環(huán)境造成影響。
2. 秒殺商品頁面靜態(tài)化
將秒殺商品頁面設(shè)計(jì)成靜態(tài)頁面,這樣用戶的請(qǐng)求不需要經(jīng)過應(yīng)用服務(wù)器的業(yè)務(wù)邏輯處理,也不需要訪問數(shù)據(jù)庫(kù)
3. 租借秒殺活動(dòng)網(wǎng)絡(luò)帶寬
向運(yùn)營(yíng)商臨時(shí)租借較大帶寬,為了減輕網(wǎng)站服務(wù)器的壓力,需要將秒殺商品頁面緩存在CDN
CDN的基本原理是廣泛采用各種緩存服務(wù)器,利用全局負(fù)載技術(shù)將用戶的訪問指向距離最近的工作正常的緩存服務(wù)器上,由緩存服務(wù)器直接響應(yīng)用戶請(qǐng)求
4. 動(dòng)態(tài)生成隨機(jī)下單頁面URL
聯(lián)系客服