昨天明明是光棍節(jié),應(yīng)是被商家們炒作成了購物街,人們對光棍節(jié)的節(jié)氣氛圍越來越淡,仿佛到了雙十一就到了購物節(jié),雙十一之前也是各種炒作,但是不得不說這十年的努力成果是巨大的,每年都在創(chuàng)造新紀錄,昨日2018年天貓雙十一累計實現(xiàn)銷售額突破2135億!
昨天明明是光棍節(jié),應(yīng)是被商家們炒作成了購物街,人們對光棍節(jié)的節(jié)氣氛圍越來越淡,仿佛到了雙十一就到了購物節(jié),雙十一之前也是各種炒作,但是不得不說這十年的努力成果是巨大的,每年都在創(chuàng)造新紀錄,昨日2018年天貓雙十一累計實現(xiàn)銷售額突破2135億!今天咱們來談?wù)?135億盛會下的阿里秒殺系統(tǒng)技術(shù)架構(gòu)的建設(shè)思路,如何設(shè)計一個秒殺系統(tǒng)架構(gòu)?
技術(shù)挑戰(zhàn)
1. 對原有業(yè)務(wù)形成沖擊
秒殺活動只是網(wǎng)站營銷的一個附加活動,特點是:時間短、并發(fā)訪問量大,如果和網(wǎng)站原有應(yīng)用部署在一起,必然會對現(xiàn)有業(yè)務(wù)造成沖擊。
解決方案:將秒殺系統(tǒng)獨立部署,甚至使用獨立域名,使其與網(wǎng)站完全隔離。
2. 高并發(fā)下數(shù)據(jù)庫、應(yīng)用負載
用戶在秒殺開始前,通過不停刷新瀏覽器頁面以保證不會錯過秒殺,這些請求如果按照一般的網(wǎng)站應(yīng)用架構(gòu),訪問應(yīng)用服務(wù)器、連接數(shù)據(jù)庫,會對應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器造成負載壓力。
解決方案:重新設(shè)計秒殺商品頁面,不使用網(wǎng)站原來的商品詳細頁面,頁面內(nèi)容靜態(tài)化,用戶請求不需要經(jīng)過應(yīng)用服務(wù)!
3. 突然增大的服務(wù)器和網(wǎng)絡(luò)帶寬
假設(shè)商品頁面大小200K,10000個請求的帶寬就是2G。
解決方案:因為秒殺新增的網(wǎng)絡(luò)帶寬,必須和運營商重新購買或者租借。為了減輕網(wǎng)站服務(wù)器的壓力,需要將秒殺商品頁面緩存到CDN
4. 防止秒殺前下單
秒殺的游戲規(guī)則是到了秒殺才能開始對商品下單購買,在此時間點之前,只能瀏覽商品信息,不能下單。而下單頁面也是一個普通的URL,如果得到這個URL,不用等到秒殺開始就可以下單了。
解決方案:為了避免用戶直接訪問下單頁面URL,需要將改URL動態(tài)化,即使秒殺系統(tǒng)的開發(fā)者也無法在秒殺開始前訪問下單頁面的URL。辦法是在下單頁面URL加入由服務(wù)器端生成的隨機數(shù)作為參數(shù),在秒殺開始的時候才能得到。
應(yīng)對策略
1. 獨立部署
和原有業(yè)務(wù)部署在不同服務(wù)器,防止高并發(fā)拖垮整個網(wǎng)站
2. 頁面靜態(tài)化
將商品詳情、描述靜態(tài)化到頁面
3. 租借秒殺網(wǎng)絡(luò)帶寬
向運營商租借帶寬
4. 動態(tài)生成隨機下單頁面URL
無法在秒殺前訪問下單頁面的URL:加入服務(wù)器端生成的隨機數(shù)作為參數(shù),在秒殺開始前才能得到
架構(gòu)設(shè)計
1. 控制秒殺購買頁面的點亮
購買按鈕只有在活動開始的時候才能點亮,在此之前是灰色的。如果是動態(tài)頁面,可以很容易解決這個問題,但為了減輕服務(wù)器端負載壓力,
更好的利用CDN、反向代理等性能優(yōu)化手段,
該頁面被設(shè)計為靜態(tài)頁面,緩存在CDN、反向代理服務(wù)器上,甚至用戶瀏覽器上。秒殺開始時,用戶刷新頁面,請求根本不會到達應(yīng)用服務(wù)器。
解決方案:秒殺商品頁面加入一個javascript引用,該javascript中加入秒殺是否開始的標志和下單頁面URL的隨機數(shù)參數(shù),該javascript使用隨機版本號,不可被瀏覽器緩存。
當(dāng)秒殺開始時,生成一個新的javascript文件并被用戶瀏覽器加載。
2. 允許第一個訂單提交
秒殺開始,由于最終能夠成功秒殺到商品的用戶只有一個,因此需要在用戶提交訂單時,檢查是否已經(jīng)有訂單提交。
解決方案:為了減輕下單頁面服務(wù)器的負載壓力,可以控制進入下單頁面入口,只有先提交的少數(shù)用戶可進入,后邊的用戶直接進入秒殺結(jié)束頁面。
下單服務(wù)器檢查本機已處理的下單請求數(shù)目
*如果超過10條,直接返回已結(jié)束頁面給用戶;
*如果未超過10條,則用戶可進入填寫訂單及確認頁面;
檢查全局已提交訂單數(shù)目
*已超過秒殺商品總數(shù),返回已結(jié)束頁面給用戶;
*未超過秒殺商品總數(shù),提交到子訂單系統(tǒng)。
這樣就大大地減少了數(shù)據(jù)庫的負載壓力。
河南億恩科技股份有限公司(1tcdy.com)始創(chuàng)于2000年,專注服務(wù)器托管租用,是國家工信部認定的綜合電信服務(wù)運營商。億恩為近五十萬的用戶提供服務(wù)器托管、服務(wù)器租用、機柜租用、云服務(wù)器、網(wǎng)站建設(shè)、網(wǎng)站托管等網(wǎng)絡(luò)基礎(chǔ)服務(wù),另有網(wǎng)總管、名片俠網(wǎng)絡(luò)推廣服務(wù),使得客戶不斷的獲得更大的收益。
服務(wù)器/云主機 24小時售后服務(wù)電話:
0371-60135900
虛擬主機/智能建站 24小時售后服務(wù)電話:
0371-55621053
網(wǎng)絡(luò)版權(quán)侵權(quán)舉報電話:
0371-60135995
服務(wù)熱線:
0371-60135900