天天看點

12306.cn 使用 Gemfire 技術為查詢提速

12306.cn

是世界規模最大的實時交易系統之一,媲美Amazon.com,節假日尤其是春節的通路高峰,網站壓力巨大。2012年初的春運高峰期間,每天有2000萬人通路該網站,日點選量最高達到14億在春運高峰,經常崩潰,無法登入,怨聲載道。

2012年3月開始,原鐵道部開始調研、改造12306。2012年6月選擇了

Pivotal GemFire

(分布式記憶體資料庫)改造12306。一期先改造了餘票查詢系統。9月份完成改造後上線。2012年國慶,雖然訂票依舊悲催,但是查詢餘票很快。2012年10月份,開始改造訂單查詢系統。2013年春運期間,雖然訂票依舊不給力,不過查詢自己的訂票和下訂單還是比較快的。

12306.cn 使用 Gemfire 技術為查詢提速

根據12306的系統運作資料記錄,采用GemFire改造之後,十幾台X86伺服器就實作了以前數十台小型機的餘票計算和查詢能力,單次查詢的最長時間從之前的15秒左右下降到0.2秒以下,不足原來的1/75。新系統支援每秒上萬次的并發查詢,高峰期間達到2.6萬個查詢/秒吞吐量,整個系統效率顯著提高。如上圖所示。

訂單查詢系統改造,在改造之前的系統運作模式下,每秒隻能支援300-400個查詢/秒的吞吐量,高流量的并發查詢隻能通過分庫來實作。改造之後,可以實作高達上萬個查詢/秒的吞吐量,而且查詢速度可以保障在20毫秒左右。

新的技術架構可以按需彈性動态擴充,還可以通過動态增加X86伺服器來應對更大并發量,保持毫秒級的響應時間。

GemFire屬于記憶體資料庫技術,提供隻有記憶體才能提供的性能。它非常适合于要求對資料進行實時通路、高并發的新式應用程式的需要。通過使用 GemFire 管理記憶體資料,可以省去傳統資料庫由于 CPU 周期、網絡流量、資料庫通路延遲等導緻的高額資料庫事務成本。能省去諸多延遲也是項目目前用記憶體資料庫的原因。GemFire記憶體資料服務還可以與 HAWQ搜尋引擎整合,為Hadoop增加SQL表達能力,利用Hadoop作為公共存儲基礎。

12306之前采用Unix小型機,采用GemFire技術後,改用Linux/X86伺服器叢集架構,在降低成本的同時,性能還提升了一個數量級。

12306.cn 使用 Gemfire 技術為查詢提速