from:http://www.jdon.com/46111
本文來自Pivotal,分析了中國鐵路總公司12306這個(gè)世界上最大的鐵路系統(tǒng)的火車票預(yù)訂系統(tǒng)。
在這個(gè)星球上人類最大的年度運(yùn)動(dòng)大概算是中國農(nóng)歷新年,又稱春節(jié)。有3488萬人次通過航空和235萬人次通過鐵路踏上他們的旅途。從歷史上看,鐵路旅行意味著排長龍隊(duì)伍買票,中國鐵路總公司(CRC)現(xiàn)在開始在網(wǎng)上賣火車票,提供比車站售票處或通過電話購買更方便的方法。
隨著越來越多人的使用車票預(yù)訂系統(tǒng),12306鐵路訂票系統(tǒng)打破了其傳統(tǒng)的RDBMS關(guān)系數(shù)據(jù)庫系統(tǒng),需要重新開始了一個(gè)新的項(xiàng)目,以改善原有系統(tǒng)性能和可伸縮性的問題,能夠承受像春節(jié)度假旅游期間的尖峰的壓力。目前該網(wǎng)站成為中國最受歡迎網(wǎng)站的之一。在這樣嚴(yán)苛的訪問條件下,系統(tǒng)出現(xiàn)以下很差用戶體驗(yàn):使用中斷,性能差,預(yù)訂錯(cuò)誤,支付失敗,票務(wù)確認(rèn)出現(xiàn)問題等等。
中國鐵道科學(xué)研究院的副主任朱劍圣首先解決性能問題,早在2011年,朱博士確保新系統(tǒng)解決基于下面兩個(gè)性能瓶頸:
1.關(guān)系型數(shù)據(jù)庫超負(fù)載,以至于不能處理傳入的請求,無論是規(guī)模擴(kuò)展性還是可靠性,都不能滿足SLA要求的水平。
2.UNIX服務(wù)器的計(jì)算能力不足以解決容量需求。
朱博士說:“傳統(tǒng)關(guān)系型數(shù)據(jù)庫和大型機(jī)的計(jì)算模式并不具有擴(kuò)展性,系統(tǒng)不能基于內(nèi)存擴(kuò)展跨多個(gè)節(jié)點(diǎn)上運(yùn)行。我們的網(wǎng)站證明了這一點(diǎn),而試圖擴(kuò)展我們的遺留系統(tǒng)將變得非常昂貴”。
使用In-memory內(nèi)存數(shù)據(jù)網(wǎng)格解決擴(kuò)展性和可靠性
朱博士的團(tuán)隊(duì)開始尋找新的解決方案,大型機(jī)被發(fā)現(xiàn)和關(guān)系數(shù)據(jù)庫有同樣的瓶頸,在內(nèi)存數(shù)據(jù)網(wǎng)格(IMDG)領(lǐng)域,他們發(fā)現(xiàn)了Pivotal GemFire,在海運(yùn)貨物系統(tǒng) 金融服務(wù),航空,電子商務(wù)等多個(gè)行業(yè)都擁有成功解決最具挑戰(zhàn)性的數(shù)據(jù)問題的良好記錄。為了執(zhí)行評估,朱博士和他的團(tuán)隊(duì)選擇了國際綜合系統(tǒng)公司(IISI)。IISI擁有強(qiáng)大為政府機(jī)構(gòu)工作的跟蹤記錄,包括在開發(fā)交通運(yùn)輸解決方案,遷移遺留系統(tǒng)到云計(jì)算架構(gòu)等方面經(jīng)歷,有與Pivotal GemFire合作經(jīng)驗(yàn)。他們開始試點(diǎn),相信了GemFire將滿足性能,可擴(kuò)展性和可用性的要求,包括能夠在低成本硬件上運(yùn)行。
IISI創(chuàng)造了一個(gè)概念證明和展示了GemFire幾個(gè)優(yōu)點(diǎn)。售票計(jì)算速度提高50到100倍。當(dāng)負(fù)載增加時(shí),響應(yīng)時(shí)間保持10-100毫秒的延遲。他們可以看到,通過增加容量,能實(shí)現(xiàn)近乎線性增長的可擴(kuò)展性和高可用性的能力。項(xiàng)目組在短短兩個(gè)月內(nèi)建立了一個(gè)試點(diǎn),四個(gè)月后,新的在線系統(tǒng)全面部署,跨越5700火車站。
該小組負(fù)責(zé)鐵路網(wǎng)上預(yù)訂系統(tǒng)每年增長高達(dá)50%。他們的網(wǎng)站每天的平均水平預(yù)訂250萬票。
72臺UNIX系統(tǒng)和關(guān)系數(shù)據(jù)庫換成了10臺初始和10個(gè)備份的x86服務(wù)器,這是一個(gè)更具成本效益的模式,能在內(nèi)存中處理2TB或一個(gè)月的的火車票數(shù)據(jù)。
朱博士認(rèn)為:“首先,Pivotal GemFire提供了一個(gè)在真實(shí)的測試環(huán)境的證明。然后,在生產(chǎn)環(huán)境面對意想不到的尖峰也是成功的,具體采取了一個(gè)迭代的方法來部署,克服了一系列大規(guī)模的挑戰(zhàn)。在最近的2013春運(yùn)期間,該系統(tǒng)具備了運(yùn)行穩(wěn)定的性能和正常運(yùn)行時(shí)間。現(xiàn)在,我們有一個(gè)可靠,經(jīng)濟(jì)合理的生產(chǎn)體系,支持記錄容量增長的空間。這個(gè)規(guī)模實(shí)現(xiàn)10-100毫秒的延遲。”
基于高可用性,冗余和故障切換機(jī)制上的GemFire提供了連續(xù)正常運(yùn)行,它已超出了所有在該領(lǐng)域的CRC校驗(yàn)的指標(biāo),并幫助他們維護(hù)他們的SLA。
具體PDF下載