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