12306火車票訂票系統的伸縮擴充套件

banq發表於2014-01-26


本文來自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下載

[該貼被banq於2014-01-26 17:27修改過]

相關文章