国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

12306互聯(lián)網(wǎng)售票系統(tǒng)的架構(gòu)優(yōu)化及演進(jìn)

2015-06-28 15:55朱建生王明哲楊立鵬閻志遠(yuǎn)張志強(qiáng)
鐵路計算機(jī)應(yīng)用 2015年11期
關(guān)鍵詞:車票訂單架構(gòu)

朱建生,王明哲,楊立鵬,閻志遠(yuǎn),張志強(qiáng)

(中國鐵道科學(xué)研究院 電子計算技術(shù)研究所,北京 100081)

12306互聯(lián)網(wǎng)售票系統(tǒng)的架構(gòu)優(yōu)化及演進(jìn)

朱建生,王明哲,楊立鵬,閻志遠(yuǎn),張志強(qiáng)

(中國鐵道科學(xué)研究院 電子計算技術(shù)研究所,北京 100081)

12306互聯(lián)網(wǎng)售票系統(tǒng)是中國鐵路最重要的售票渠道。本文介紹系統(tǒng)的體系架構(gòu)及其在上線初期遇到的性能問題,以及為解決相關(guān)問題,改善用戶體驗進(jìn)行的幾次重大架構(gòu)優(yōu)化的思路和實踐,同時簡要介紹12306在架構(gòu)優(yōu)化方面下一步的工作設(shè)想。

12306;互聯(lián)網(wǎng);售票;架構(gòu)

12306 互聯(lián)網(wǎng)售票系統(tǒng)是基于中國鐵路客票發(fā)售和預(yù)訂系統(tǒng)(簡稱:客票系統(tǒng))這一核心系統(tǒng)構(gòu)建的。2011年6月12日,系統(tǒng)投入試運(yùn)行,發(fā)售京津城際列車車票;2011年9月30日,發(fā)售全路動車組車票;2011年底,發(fā)售全路列車車票,互聯(lián)網(wǎng)正式成為鐵路新的售票渠道。

2012年春運(yùn)期間,由于訪問量超出設(shè)計預(yù)期,12306網(wǎng)站在高峰期出現(xiàn)了頁面打開緩慢、查詢和下單報錯、后臺系統(tǒng)過載等一系列問題,用戶體驗不佳。春運(yùn)結(jié)束后,研發(fā)團(tuán)隊基于新一代客票系統(tǒng)多個科研項目,對系統(tǒng)架構(gòu)、應(yīng)用功能以及業(yè)務(wù)規(guī)則進(jìn)行了持續(xù)優(yōu)化和改進(jìn),逐步解決了售票高峰期海量并發(fā)訪問請求及處理等一系列關(guān)鍵技術(shù)問題,大幅提高了系統(tǒng)的處理能力、穩(wěn)定性以及用戶體驗。本文將重點介紹12306網(wǎng)站自建設(shè)之初至今針對系統(tǒng)性能優(yōu)化的研究與實踐工作,以及系統(tǒng)架構(gòu)的演進(jìn)過程。

1 12306系統(tǒng)架構(gòu)及其出現(xiàn)問題

互聯(lián)網(wǎng)售票系統(tǒng)作為客票系統(tǒng)一個新的售票渠道,建設(shè)之初,在借鑒和參考客票核心系統(tǒng)架構(gòu)的基礎(chǔ)上,根據(jù)互聯(lián)網(wǎng)應(yīng)用的特點,為系統(tǒng)設(shè)計了緩存服務(wù)、用戶管理、車票查詢、訂單及電子客票處理等多個相對獨(dú)立的業(yè)務(wù)分區(qū),以及三級網(wǎng)絡(luò)安全域,分別是外網(wǎng)、內(nèi)網(wǎng)和客票網(wǎng),系統(tǒng)的體系架構(gòu)如圖1所示。

具體實現(xiàn)時,用戶管理、車票查詢及訂單/電子客票處理均采用了傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,其中車票查詢業(yè)務(wù)部署了多套負(fù)載均衡工作模式的數(shù)據(jù)庫,訂單/電子客票處理業(yè)務(wù)采用了雙機(jī)熱備模式的數(shù)據(jù)庫,上述數(shù)據(jù)庫均運(yùn)行在小型機(jī)平臺上。外網(wǎng)的車次、余票等緩存服務(wù)采用了基于內(nèi)存計算的NoSQL數(shù)據(jù)庫,運(yùn)行在X86平臺上。上線前的壓力測試,一筆流程包含用戶登錄、車票查詢、下單及支付等業(yè)務(wù)操作,系統(tǒng)極限交易能力為34張/s,按高峰期10 h計算,售票量可達(dá)到120萬張/天的設(shè)計能力。

圖1 12306建設(shè)初期體系架構(gòu)示意圖

2012年春運(yùn)期間,持續(xù)的高并發(fā)訪問使系統(tǒng)在多個方面出現(xiàn)性能瓶頸,如圖2所示。

圖2 12306架構(gòu)在高峰期出現(xiàn)的瓶頸示意圖

出現(xiàn)的主要問題包括:

(1)高并發(fā)的查詢請求造成車票查詢業(yè)務(wù)分區(qū)負(fù)載過高,查詢響應(yīng)時間過長,用戶進(jìn)而反復(fù)重試,造成AS(Application Server)的查詢線程池?fù)矶隆?/p>

(2)放票時高并發(fā)的下單請求導(dǎo)致訂單/電子客票數(shù)據(jù)庫負(fù)載過高,引起交易響應(yīng)時間過長,造成AS以及inetis的交易線程池?fù)矶?,下單失敗后用戶反?fù)重試,從而加劇擁堵。

(3)AS線程池的擁堵進(jìn)一步造成Web對外服務(wù)線程的擁堵,影響頁面打開及業(yè)務(wù)邏輯處理,造成頁面打開速度緩慢和超時錯誤。

(4)內(nèi)外網(wǎng)安全平臺上在活動及新建連接過多時性能下降,也導(dǎo)致Web訪問AS出錯。

(5)訂單/電子客票數(shù)據(jù)庫負(fù)載過高時,對線下車站的換票業(yè)務(wù)產(chǎn)生影響。

(6)為減輕網(wǎng)站壓力,降低查詢和下單的請求量,網(wǎng)站被迫降級運(yùn)行,限制在線的登錄用戶數(shù)量,造成部分用戶不能登錄網(wǎng)站。

春運(yùn)過后,互聯(lián)網(wǎng)上也出現(xiàn)了關(guān)于12306架構(gòu)的討論和建議熱潮,通過認(rèn)真聽取各方意見,梳理上述主要問題的原因和關(guān)聯(lián)關(guān)系,結(jié)合系統(tǒng)監(jiān)控數(shù)據(jù),總結(jié)出主要是由于車票查詢以及訂單/電子客票業(yè)務(wù)分區(qū)處理能力不足,造成高峰期高并發(fā)訪問請求下響應(yīng)時間過長,加之各個業(yè)務(wù)分區(qū)未能很好進(jìn)行隔離,導(dǎo)致系統(tǒng)由內(nèi)至外產(chǎn)生“雪崩”效應(yīng),造成網(wǎng)站擁堵,影響用戶的購票體驗。

2 系統(tǒng)架構(gòu)的調(diào)整及優(yōu)化

針對上述問題及原因,我們將架構(gòu)優(yōu)化及重構(gòu)思路重點放在提升車票查詢和交易處理的響應(yīng)速度,以降低查詢和交易的延遲。同時盡可能分離核心業(yè)務(wù),減少業(yè)務(wù)環(huán)節(jié)間的強(qiáng)關(guān)聯(lián),具體內(nèi)容包括:

(1)使用內(nèi)存計算NoSQL數(shù)據(jù)庫取代傳統(tǒng)數(shù)據(jù)庫,大幅提升車票并發(fā)查詢能力,車票查詢的TPS/ QPS(Transaction/Query per Second)由不足1 000次/s提升至超過20 000次/s,RT(Response Time)由原來的1 s縮減至10 ms,使用戶可以快速獲取到車次及余票情況。

(2)構(gòu)建交易處理排隊系統(tǒng),系統(tǒng)先通過隊列接收用戶的下單請求,再根據(jù)后端處理能力異步地處理隊列中的下單請求。隊列的下單請求接收能力超過10萬筆/秒,用戶可以在售票高峰期迅速完成下單操作,等候系統(tǒng)依次處理,等候過程中可以查詢排隊狀態(tài)(等候處理的時間)。排隊系統(tǒng)中也采用了內(nèi)存計算NoSQL數(shù)據(jù)庫。

(3)對訂單/電子客票進(jìn)行分節(jié)點分庫分表改造,將原有的1個節(jié)點1個庫1張表物理拆分為3個節(jié)點30個庫30張表,線上相關(guān)操作按用戶名HASH的方式被分散到各個節(jié)點和庫表中,有效提升了核心交易的處理能力并具備繼續(xù)橫向擴(kuò)充能力,使用戶在隊列中的訂票請求可以得到更快的響應(yīng)和處理。

(4)對訂票、取票操作進(jìn)行了業(yè)務(wù)分離,由不同的業(yè)務(wù)節(jié)點(售票節(jié)點和取票節(jié)點)承載網(wǎng)上售票和線下取票業(yè)務(wù);對訂單/電子客票生成和查詢進(jìn)行了讀寫分離,使用內(nèi)存計算NoSQL數(shù)據(jù)庫集中存儲訂單/電子客票,提供以Key-Value為主的查詢服務(wù),訂單查詢的TPS由200次/s左右提升至5 000次/s以上,大幅提升了訂單/電子客票的查詢效率。

優(yōu)化和重構(gòu)后的架構(gòu)如圖3所示。

圖3 第1次優(yōu)化后的12306體系架構(gòu)

在新的架構(gòu)中,通過高效的車票查詢集群和緩存服務(wù),用戶以較低延遲即可獲取到所需車次的余票情況。隨后的下單操作(訂票請求)直接由排隊系統(tǒng)壓入隊列處理,不同的車次/日期進(jìn)入不同的隊列,訂票請求不再直接面對內(nèi)網(wǎng)的AS和客票網(wǎng)的核心交易系統(tǒng)。具體實現(xiàn)時,考慮到車票查詢結(jié)果有緩存延時,在訂票請求進(jìn)入隊列前,還將實時查詢車次余票,確有余票且當(dāng)前排隊人數(shù)不超過余票數(shù)量時才最終允許訂票請求進(jìn)入隊列。排隊系統(tǒng)收到請求后,采用動態(tài)流量控制策略,即根據(jù)位于客票網(wǎng)各個鐵路局客票中心的席位處理以及訂單/電子客票集群處理的響應(yīng)時間,向AS提交用戶的訂票請求,處理響應(yīng)時間放慢,則提交速度放慢,反之則提高訂票請求的提交速度。讀寫分離,避免了高并發(fā)、低延時要求的查詢操作影響交易處理;售票和取票分離,使網(wǎng)上售票與線下取票互不干擾。優(yōu)化架構(gòu)后的系統(tǒng)在上線前壓力的測試中,極限交易能力為300張/s,可以滿足日售票量500萬的業(yè)務(wù)需求。

2013年春運(yùn),優(yōu)化架構(gòu)后的12306網(wǎng)站最高日售票量達(dá)到364萬,占全路售票量的40%,售票量為2012年春運(yùn)最高峰(119萬)的3倍多,各鐵路局客票系統(tǒng)以及12306網(wǎng)站性能穩(wěn)定,運(yùn)行平穩(wěn),充分證明了架構(gòu)調(diào)整的有效性。

2013年十一黃金周,12306互聯(lián)網(wǎng)售票量達(dá)到了460萬,再次接近系統(tǒng)處理的上限,且高峰期外網(wǎng)入口帶寬緊張,已不能滿足互聯(lián)網(wǎng)售票量進(jìn)一步提升的需要。此外,作為鐵路售票的主要渠道,互聯(lián)網(wǎng)售票系統(tǒng)單中心運(yùn)行模式已不能滿足業(yè)務(wù)安全性和可靠性的需求。為此,自2013年底起啟動了12306網(wǎng)站的第2輪架構(gòu)優(yōu)化,優(yōu)化目標(biāo)旨在提高系統(tǒng)的安全可靠性,以及在高峰期具備處理容量的彈性擴(kuò)充能力,具體內(nèi)容包括:

(1)將用戶登錄及常用聯(lián)系人查詢等業(yè)務(wù)遷移至內(nèi)存數(shù)據(jù)庫中,提高了相關(guān)業(yè)務(wù)的處理性能和可靠性。

(2)構(gòu)建中國鐵道科學(xué)研究院第2生產(chǎn)中心,與既有的中國鐵路總公司第1生產(chǎn)中心間實現(xiàn)雙活,提升網(wǎng)站的安全性和可靠性,并將訂單/電子客票集群的處理能力提高1倍。

(3)在公有云上部署車票查詢服務(wù),通過策略配置可隨時將車票查詢流量分流至公用云,以緩解在售票高峰期網(wǎng)站的處理資源和帶寬壓力。

優(yōu)化和調(diào)整后的系統(tǒng)架構(gòu)如圖4所示。

圖4 再次優(yōu)化后的12306體系架構(gòu)

此次架構(gòu)優(yōu)化過程中,完成的主要工作包括:

(1)構(gòu)建了用戶和常用聯(lián)系人內(nèi)存查詢集群,由用戶數(shù)據(jù)庫向集群實時同步數(shù)據(jù),并實現(xiàn)了讀寫分離,用戶登錄和常用聯(lián)系人查詢的TPS提升了50倍以上,消除了業(yè)務(wù)瓶頸。

(2)構(gòu)建了第2生產(chǎn)中心,采用虛擬化技術(shù)與原有的第1生產(chǎn)中心組成了雙活架構(gòu)。用戶流量通過CDN在兩中心間進(jìn)行對等分配(50:50),兩個中心擁有獨(dú)立的Web、AS、緩存服務(wù)集群、車票查詢集群、用戶及常用聯(lián)系人集群以及交易中間件,排隊系統(tǒng)以主備模式運(yùn)行,用戶數(shù)據(jù)雙向同步。正常情況下雙中心雙活模式運(yùn)行,其中任一個中心發(fā)生故障時可由另外一個中心承載全部售票業(yè)務(wù)。

(3)在互聯(lián)網(wǎng)公用云上部署了車票查詢集群及查詢服務(wù),由CDN完成車票查詢流量在第1生產(chǎn)中心、第2生產(chǎn)中心以及公有云間的流量分配,流量分配可通過動態(tài)調(diào)整策略在線完成。

在雙活架構(gòu)的建設(shè)過程中,我們將訂單/電子客票集群完全遷移至X86虛擬化平臺,并擴(kuò)充至10組節(jié)點,100個庫,100張表。上線前的壓力測試驗證了系統(tǒng)可以滿足1 000萬張/天的設(shè)計售票能力,在2015年春運(yùn)高峰時段,實際售票速度超過了1 000張/s(約合360萬張/s)。第1生產(chǎn)中心、第2生產(chǎn)中心間訂單/電子客票集群具備熱切換能力,顯著提高了系統(tǒng)的故障隔離能力和系統(tǒng)的安全及可靠性。公有云在2015年春運(yùn)期間最高分流了75%的查詢請求,網(wǎng)站對外車票查詢服務(wù)能力增加了3倍。基于CDN緩存服務(wù)(一級緩存)、雙中心及公有云緩存服務(wù)(二級緩存)、雙中心及公用云車票查詢集群(實時計算),12306網(wǎng)站在2015年春運(yùn)高峰日處理了超過180億次車票查詢服務(wù),平均TPS超過30萬次/s。

3 結(jié)束語

回顧12306互聯(lián)網(wǎng)售票系統(tǒng)的發(fā)展,高峰售票量由2012年春運(yùn)的119萬張/天,增至2013年春運(yùn)的364萬張/天,系統(tǒng)架構(gòu)的優(yōu)化與調(diào)整起到了至關(guān)重要的作用。2014和2015年春運(yùn)售票量再次超過500萬和600萬,最高達(dá)到636萬/天,驗證了二次優(yōu)化后架構(gòu)的合理性和有效性。

12306 互聯(lián)網(wǎng)售票系統(tǒng)在優(yōu)化架構(gòu)的同時,還在核心業(yè)務(wù)中用低成本的X86平臺全面替代了原有的小型機(jī)平臺,其架構(gòu)優(yōu)化實踐對同類大規(guī)模并發(fā)訪問的網(wǎng)上交易系統(tǒng)具有重要的借鑒意義。下一步我們將繼續(xù)優(yōu)化訂單/電子客票雙活架構(gòu)、系統(tǒng)故障感應(yīng)、隔離以及智能切換技術(shù),同時深入開展網(wǎng)站用戶行為分析和安全管控機(jī)制建設(shè),持續(xù)提高系統(tǒng)的安全性、可靠性及穩(wěn)定性,改善用戶購票體驗。

[1]陳 皓.由12306.cn談?wù)劸W(wǎng)站性能技術(shù)[EB/OL]. http:// coolshell.cn/articles/6470.html.

[2]幽云十八.透過12306五大焦點看高性能高并發(fā)系統(tǒng)[EB/ OL]. http://storage.it168.com/a2012/0217/1313/000001313424. shtml.

[3]王明哲,張振利,徐 彥,等. 鐵路互聯(lián)網(wǎng)售票系統(tǒng)的研究與實現(xiàn)[J]. 鐵路計算機(jī)應(yīng)用,2012,21(4).

[4]趙 光. 鐵路互聯(lián)網(wǎng)售票系統(tǒng)網(wǎng)站建設(shè)的優(yōu)化探討[J]. 上海鐵道科技,2012(3).

責(zé)任編輯 王 浩

Architecture optimization and evolution of 12306 Internet Ticketing and Reservation System

ZHU Jiansheng, WANG Mingzhe, YANG Lipeng, YAN Zhiyuan, ZHANG Zhiqiang
( Institute of Computing Technologies, China Academy of Railway Sciences, Beijing 100081, China )

12306 Internet Ticketing and Reservation System was the most important ticketing channel for Chinese railway. This paper introduced the system architecture and its performance problems in the beginning, as well as several major architecture optimization ideas and practices to solve the relevant problems, improve the user experience, and brief l y introduced the idea of the architecture optimization of the next step.

12306 Website; Internet; ticketing; architecture

U293.22∶TP39

A

1005-8451(2015)11-0001-05

2015-08-02

中國鐵路總公司科技研究開發(fā)計劃重大課題(2013X009-A-1),(2013X009-A-2)。

朱建生,研究員;王明哲,副研究員。

猜你喜歡
車票訂單架構(gòu)
基于FPGA的RNN硬件加速架構(gòu)
春節(jié)期間“訂單蔬菜”走俏
訂單農(nóng)業(yè)打開廣闊市場
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
找車票
基于云服務(wù)的圖書館IT架構(gòu)
“最確切”的幸福觀感——我們的致富訂單
WebGIS架構(gòu)下的地理信息系統(tǒng)構(gòu)建研究
我是個“小車票迷”
怎樣做到日訂單10萬?
阳曲县| 广丰县| 郑州市| 凤凰县| 滕州市| 元江| 翁牛特旗| 原阳县| 三都| 娱乐| 房山区| 哈尔滨市| 池州市| 灌南县| 古蔺县| 久治县| 布尔津县| 读书| 水富县| 阳信县| 桦川县| 措美县| 洛南县| 栖霞市| 台中市| 义马市| 裕民县| 丰镇市| 察隅县| 汾西县| 仁寿县| 平和县| 临颍县| 弥渡县| 克什克腾旗| 益阳市| 息烽县| 紫金县| 泰宁县| 黑龙江省| 隆德县|