999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

電商網(wǎng)站秒殺系統(tǒng)的研究與對策

2017-11-30 06:12:58張會敏
科技與創(chuàng)新 2017年22期
關鍵詞:數(shù)據(jù)庫優(yōu)化用戶

張會敏

(中北大學軟件學院,山西 太原 030051)

電商網(wǎng)站秒殺系統(tǒng)的研究與對策

張會敏

(中北大學軟件學院,山西 太原 030051)

簡要研究了電商網(wǎng)站秒殺應用的高并發(fā)訪問問題,分析了其主要特點,然后從系統(tǒng)架構、程序開發(fā)2個方面入手,詳細分析了架構分層、緩存、異步方法、消息隊列、代碼實現(xiàn)等內(nèi)容,并提出了相關問題的解決方法.

分層設計;異步方法;頁面靜態(tài)化;秒殺系統(tǒng)

大型的電商網(wǎng)站,例如京東、阿里系、亞馬遜中國,都有各自的秒殺系統(tǒng).秒殺活動是網(wǎng)站的一種重要營銷手段,在營銷過程中占有舉足輕重的位置.秒殺會吸引大量用戶搶購,會在約定的時間點同時在相應的頁面內(nèi)搶購約定數(shù)量的商品,并在規(guī)定時間內(nèi)結束.通常情況下,秒殺的時限都很短.秒殺系統(tǒng)是典型的高并發(fā)應用.秒殺時,大量用戶會在同一時間搶購,網(wǎng)站瞬時流量激增.秒殺時,訪問請求數(shù)量遠遠大于庫存數(shù)量,最終只有極少數(shù)用戶能夠秒殺成功.此類高并發(fā)應用在電商網(wǎng)站舉行一些其他活動或者在12306網(wǎng)站上搶票時常會遇到.系統(tǒng)軟硬件無法處理如此巨大的計算量,進而出現(xiàn)響應速度慢,甚至出現(xiàn)處理出錯、系統(tǒng)宕機等問題,進而導致整個系統(tǒng)癱瘓.

在高并發(fā)的情況下,網(wǎng)站如何才能穩(wěn)定、持續(xù)工作一直是一個難題.本文從軟件的架構設計和實現(xiàn)層面出發(fā)提出相應的解決方案,即在系統(tǒng)中使用分層與組件化的架構,并配合緩存、消息隊列.在實現(xiàn)方面,針對秒殺應用的特點,引入了異步方法、表現(xiàn)與數(shù)據(jù)分離的方法.

1 秒殺系統(tǒng)的關鍵點分析

從業(yè)務規(guī)則的角度講,設計秒殺系統(tǒng)有2個關鍵,即庫存管理和訂單處理.當用戶搶購時,系統(tǒng)需要判斷是否還有庫存;當用戶提交訂單時,系統(tǒng)需要按照提交訂單請求的順序依次創(chuàng)建訂單.當然這只是最簡化的秒殺設計.事實上還涉及到其他的附屬環(huán)節(jié),例如積分、在線支付、物流配送,等等.

2 系統(tǒng)架構優(yōu)化

在此必須明確的前提是,高并發(fā)應用是一個有機系統(tǒng),整個系統(tǒng)的優(yōu)化與提高來自每個組件的優(yōu)化,它們共同組成一個強大的系統(tǒng),以面對每秒幾十萬級甚至百萬級的訪問量.

2.1 服務器負載均衡與集群

在服務后端,可以使用負載均衡、集群技術.負載均衡、集群技術可以分別部署在Web服務器層、應用服務器層、數(shù)據(jù)存取層和數(shù)據(jù)庫層.也就是說,在服務后端進行了更細粒度的分層,從而極大地提高系統(tǒng)的負載能力.

具體來講,在Web服務器層配置Apache/Nginx的反向代理,實現(xiàn)多臺服務器的負載均衡,同時,在應用服務器層也部署負載均衡.而在數(shù)據(jù)庫存儲層,則有更多靈活的方法可以使用,比如數(shù)據(jù)庫集群、讀寫表分離等性能調(diào)優(yōu)手段.此外,各廠家也有其成熟的方案,比如Oracle的表與索引的分區(qū)技術.

2.2 表現(xiàn)與數(shù)據(jù)分離

從客戶端的角度出發(fā),可使用表現(xiàn)與數(shù)據(jù)分離的架構.隨著CPU/GPU的發(fā)展,計算機的計算能力越來越強,將一些計算邏輯分散到客戶端,可以明顯降低服務后端的計算壓力.前后端之間通過傳送小巧的JSON數(shù)據(jù)進行交互,也降低了應用對網(wǎng)絡帶寬的要求.

2.3 使用緩存

這里所說的緩存包含以下2個層面:①靜態(tài)資源緩存,比如圖片文件、CSS樣式表、JavaScript文件.靜態(tài)資源緩存的效果最直接.通過緩存靜態(tài)文件,并配合CDN(內(nèi)容分發(fā)網(wǎng)絡),可以極大地提高頁面的訪問速度.同時,配合合理的超期規(guī)則,可以正確、及時地更新這些靜態(tài)資源文件.②引入專用的緩存服務器,例如Redis、Memcached.這類緩存服務器是通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少系統(tǒng)資源消耗巨大的讀取數(shù)據(jù)庫動作的次數(shù),從而提高動態(tài)數(shù)據(jù)庫驅動網(wǎng)站的響應速度.

2.4 使用異步方法

使用異步方法是架構高并發(fā)秒殺應用的關鍵.異步方法是非阻塞調(diào)用,該調(diào)用不會阻塞當前線程.具體來說,就是在服務后端使用消息隊列.在同步阻塞模式下,眾多用戶并發(fā)訪問時,數(shù)據(jù)庫訪問層很容易因為數(shù)據(jù)庫的鎖機制導致壓力迅速攀升,很快宕機.使用異步處理方法,讓用戶提交的搶購請求首先進入隊列,可以徹底解決數(shù)據(jù)庫鎖引起的問題.在搶購結束后,再把隊列中的信息存入數(shù)據(jù)庫,形成訂單數(shù)據(jù).因此,對于秒殺系統(tǒng)而言,流程就變成了這個樣子:用戶搶購商品,提交的搶購請求進入隊列,用戶收到搶購成功消息(有庫存的情況),或者接收到搶購失敗的消息(商品已經(jīng)搶完了).

實際的訂單操作則在另外的"空間"存儲成數(shù)據(jù)庫表中的訂單記錄.這樣的設計完美解決了數(shù)據(jù)庫記錄鎖的問題,而且保證了數(shù)據(jù)的一致性、系統(tǒng)的可靠性.不過在極端場景下,因為請求過多,很可能會一瞬間將隊列內(nèi)存"撐爆",系統(tǒng)也會陷入異常狀態(tài).簡單的隊列也無法滿足高并發(fā)Web應用的需求,所以,推薦使用消息隊列中間件軟件,比如Redis、WebSphere MQ和ActiveMQ等.

3 程序設計優(yōu)化

從程序設計的角度來講,可以考慮從以下幾個方面進行優(yōu)化:①前后端分離.前端負責頁面的UI和對應邏輯處理,后臺負責業(yè)務規(guī)則的處理和計算,兩者通過JSON數(shù)據(jù)進行交互.②優(yōu)化頁面的靜態(tài)資源文件.比如采用Sprite圖將許多小圖片圖標集成到一張大圖上,合并并且壓縮處理CSS樣式表、JavsScript源碼文件.這樣的處理方式可以大大減少客戶端對服務器端的Socket請求數(shù)量.③將動態(tài)網(wǎng)頁信息靜態(tài)化,結合一些JavaScript模板引擎,實現(xiàn)這些頁面的數(shù)據(jù)動態(tài)綁定.④在數(shù)據(jù)存儲層,使用緩存工具,比如Spring和Hibernate.

4 結束語

綜上所述,高并發(fā)應用是一個復雜系統(tǒng),它涉及到軟硬件、服務器、數(shù)據(jù)庫和中間件等方方面面的內(nèi)容.構建高并發(fā)Web應用,基本出發(fā)點是系統(tǒng)分層與解耦,將系統(tǒng)組件化,讓每個組件充分發(fā)揮其效能,同時,還可以靈活擴展.高并發(fā)Web應用采取的2個關鍵技術是緩存和異步方法,這2種技術可以應用于高并發(fā)Web應用的不同分層中.另外,高并發(fā)Web應用對程序的開發(fā)也提出了更多的要求.

[1]邵斐.面向電子商務的秒殺系統(tǒng)設計與實現(xiàn)[J].微型機與應用,2015,34(6):84-87.

[2]王亞楠,吳華瑞,黃鋒.高并發(fā)Web應用系統(tǒng)的性能優(yōu)化分析與研究[J].計算機工程與設計,2014(8):2976-2980.

[3]李軍鋒,何明昕.高并發(fā)Web航空票務秒殺系統(tǒng)的設計與實現(xiàn)[J].計算機工程與設計,2013,34(3):778-782.

[4]倪高鵬.基于Memcached的緩存系統(tǒng)設計與實現(xiàn)[D].大連:大連理工大學,2012.

[5]林克,羅喧,李凌,等.支持高并發(fā)處理的新型票務應用系統(tǒng)設計與實現(xiàn)[J].電信科學,2015,31(10):130-136.

[6]彭海平.電子商務平臺的性能優(yōu)化和高可靠性研究與實現(xiàn)[D].上海:上海交通大學,2007.

[7]白鑫.基于Redis的信息存儲優(yōu)化技術研究與應用[D].北京:北方工業(yè)大學,2014.

[8]包立輝,黃彥飛.高并發(fā)網(wǎng)站的架構研究及解決方案[J].計算機科學,2012,39(10):184-187.

[9]楊振靈.高并發(fā)數(shù)據(jù)庫訪問性能測試與制約因素分析[J].大眾科技,2016,18(6):7-10.

〔編輯:白潔〕

TP311.52

A

10.15913/j.cnki.kjycx.2017.22.075

2095-6835(2017)22-0075-02

猜你喜歡
數(shù)據(jù)庫優(yōu)化用戶
超限高層建筑結構設計與優(yōu)化思考
民用建筑防煙排煙設計優(yōu)化探討
關于優(yōu)化消防安全告知承諾的一些思考
一道優(yōu)化題的幾何解法
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 中国成人在线视频| 欧美一区二区三区国产精品| 精品国产Av电影无码久久久| 午夜福利在线观看成人| 日韩在线播放欧美字幕| 亚洲清纯自偷自拍另类专区| 亚洲成人网在线观看| 亚洲精品午夜天堂网页| 国产欧美在线观看精品一区污| 成人a免费α片在线视频网站| 国产成人综合欧美精品久久| 午夜视频免费试看| 高清国产va日韩亚洲免费午夜电影| 精品国产美女福到在线不卡f| 视频二区中文无码| 香蕉在线视频网站| 美女无遮挡拍拍拍免费视频| 国产福利小视频高清在线观看| 免费观看成人久久网免费观看| 久久午夜夜伦鲁鲁片无码免费| 久久综合国产乱子免费| 久久综合色播五月男人的天堂| 久久黄色影院| 国产精品色婷婷在线观看| 亚洲成人黄色在线| 制服丝袜在线视频香蕉| 欧美精品H在线播放| 综合五月天网| 国产99欧美精品久久精品久久| 精品无码日韩国产不卡av| AV天堂资源福利在线观看| 精品国产电影久久九九| 国产91小视频| 国产一区二区三区在线观看免费| 免费看久久精品99| 少妇精品久久久一区二区三区| 91娇喘视频| 日韩精品毛片| 国产欧美另类| 国产91视频免费观看| 欧美成人综合在线| 欧美一级夜夜爽www| 欧美激情网址| 免费在线看黄网址| 欧美日韩在线国产| 一区二区理伦视频| 欧美日韩一区二区三区在线视频| 自拍偷拍欧美| 国产成人精品一区二区不卡| 日韩成人高清无码| 四虎永久在线精品影院| 国产精品大白天新婚身材| 亚洲天堂久久新| 一本大道东京热无码av| 国产乱子伦视频三区| 色亚洲成人| 久久午夜夜伦鲁鲁片无码免费| 亚洲浓毛av| 日本在线国产| 欧美日韩国产精品综合| 亚洲成年网站在线观看| 欧美日韩激情在线| 亚洲无线一二三四区男男| 亚洲日韩Av中文字幕无码| 国产SUV精品一区二区6| 国产精品久久久久久久久久久久| 久久久久国产精品嫩草影院| AV色爱天堂网| 国产精品尤物在线| 精品久久综合1区2区3区激情| 国产精品密蕾丝视频| 亚洲欧美一区二区三区图片| 国产成人精品男人的天堂下载 | 久久综合一个色综合网| 露脸国产精品自产在线播| 黄色三级毛片网站| 亚洲va在线观看| 囯产av无码片毛片一级| 国产91九色在线播放| 99视频在线看| 国产浮力第一页永久地址 | 91在线国内在线播放老师|