from:http://www.jdon.com/46111


本文來自Pivotal,分析了中國鐵路總公司12306這個世界上最大的鐵路系統的火車票預訂系統。

在這個星球上人類最大的年度運動大概算是中國農歷新年,又稱春節。有3488萬人次通過航空和235萬人次通過鐵路踏上他們的旅途。從歷史上看,鐵路旅行意味著排長龍隊伍買票,中國鐵路總公司(CRC)現在開始在網上賣火車票,提供比車站售票處或通過電話購買更方便的方法。

隨著越來越多人的使用車票預訂系統,12306鐵路訂票系統打破了其傳統的RDBMS關系數據庫系統,需要重新開始了一個新的項目,以改善原有系統性能和可伸縮性的問題,能夠承受像春節度假旅游期間的尖峰的壓力。目前該網站成為中國最受歡迎網站的之一。在這樣嚴苛的訪問條件下,系統出現以下很差用戶體驗:使用中斷,性能差,預訂錯誤,支付失敗,票務確認出現問題等等。

中國鐵道科學研究院的副主任朱劍圣首先解決性能問題,早在2011年,朱博士確保新系統解決基于下面兩個性能瓶頸:

1.關系型數據庫超負載,以至于不能處理傳入的請求,無論是規模擴展性還是可靠性,都不能滿足SLA要求的水平。 

2.UNIX服務器的計算能力不足以解決容量需求。

朱博士說:“傳統關系型數據庫和大型機的計算模式并不具有擴展性,系統不能基于內存擴展跨多個節點上運行。我們的網站證明了這一點,而試圖擴展我們的遺留系統將變得非常昂貴”。

使用In-memory內存數據網格解決擴展性和可靠性
朱博士的團隊開始尋找新的解決方案,大型機被發現和關系數據庫有同樣的瓶頸,在內存數據網格(IMDG)領域,他們發現了Pivotal GemFire,在海運貨物系統 金融服務,航空,電子商務等多個行業都擁有成功解決最具挑戰性的數據問題的良好記錄。為了執行評估,朱博士和他的團隊選擇了國際綜合系統公司(IISI)。IISI擁有強大為政府機構工作的跟蹤記錄,包括在開發交通運輸解決方案,遷移遺留系統到云計算架構等方面經歷,有與Pivotal GemFire合作經驗。他們開始試點,相信了GemFire​​將滿足性能,可擴展性和可用性的要求,包括能夠在低成本硬件上運行。

IISI創造了一個概念證明和展示了GemFire幾個優點​​。售票計算速度提高50到100倍。當負載增加時,響應時間保持10-100毫秒的延遲。他們可以看到,通過增加容量,能實現近乎線性增長的可擴展性和高可用性的能力。項目組在短短兩個月內建立了一個試點,四個月后,新的在線系統全面部署,跨越5700火車站。

該小組負責鐵路網上預訂系統每年增長高達50%。他們的網站每天的平均水平預訂250萬票。

72臺UNIX系統和關系數據庫換成了10臺初始和10個備份的x86服務器,這是一個更具成本效益的模式,能在內存中處理2TB或一個月的的火車票數據。

朱博士認為:“首先,Pivotal GemFire​​提供了一個在真實的測試環境的證明。然后,在生產環境面對意想不到的尖峰也是成功的,具體采取了一個迭代的方法來部署,克服了一系列大規模的挑戰。在最近的2013春運期間,該系統具備了運行穩定的性能和正常運行時間。現在,我們有一個可靠,經濟合理的生產體系​​,支持記錄容量增長的空間。這個規模實現10-100毫秒的延遲。”

基于高可用性,冗余和故障切換機制上的GemFire​​提供了連續正常運行,它已超出了所有在該領域的CRC校驗的指標,并幫助他們維護他們的SLA。

具體PDF下載