混搭風潮來襲!賣車票原來一點都不容易

文:吳冠輝 2020-05-26

發布時間: 2020-05-25 10:28:00

混合雲 公有雲 私有雲 雙模IT


混搭風潮來襲!賣車票原來一點都不容易


8-16.jpg


解析大陸鐵路訂票系統12306所採用的混合雲方案,該系統面臨查詢、訂票交易的餘量間關聯變化、大併發需求等,利用混搭公有雲、佇列、記憶體計算等技術來架構混合雲。



前期介紹混合雲概念、架構以及解決方案,可能讀者還摸不著邊際。事實上,混合雲有許多實務案例非常值得參考,可從中學習到別的企業架構混合雲的經驗。本篇將著重介紹大陸鐵路訂票系統12306所採用的混合雲方案,特別關注其如何架構賣票系統及採用技術的細節與考量點,以下就來探討這個案例。


賣車票是有多難!?

一聽到賣票系統,大多數人都會認為這是個簡單問題。事實上,鐵路售票系統相較於其它售票系統,諸如演唱會活動等售票,其邏輯複雜度高出好幾倍。茲將鐵路售票系統最關鍵的兩個技術需求,說明如下:


1.數量變化:如果將每張可出售的火車票當成一件商品來看,每張票的銷售都會影響到整條路線每個站點可銷售的餘票量。每張票銷售會讓有些站點的餘票量會產生變化、有些站點餘票量不會有變化。再者,當銷售一張票、改簽或退票時,整條路線每個站點的餘票量都需要重新計算。換句話說,每個站點的餘票庫存是個“動態變化庫存”的概念。站點與站點之間的餘票庫存有巨大的關聯性。這種“動態庫存”概念的業務邏輯是鐵路售票與電商網站最大的差異。


2.銷量變化:銷售量的概念是另一個重要問題。量變引發質變,大陸鐵路訂票系統12306售票系統也面臨節假日和非節假日高高低低的需求。春運的售票高峰期間的訪問流量(PV值)和平時訪問流量就高達上萬倍的差異。例如:春運期間,12306售票系統可能達到一天200億的查詢、200萬以上的售票交易。面臨這樣的差異,系統不可能時時刻刻都準備著高峰流量所需的軟硬體,因為成本實在太高。因此,系統所需的計算資源有沒有方法可以依據需求佔有與釋放而進行動態調整?


混合雲的解決方案


8-6.jpg

圖、12306兩地三中心 混合雲架構


大陸鐵路訂票系統12306售票系統根據其流量變化需求,陸續做一些優化與改造,向混合雲邁進。有關12306售票系統的技術採用方式,整理如下:


 私有雲數據安全管理

對於公共服務平台而言,敏感性和安全性的資料保護是首要考慮。在混合雲設計上,12306售票系統將這些資料存放在私有雲數據中心,確保數據安全無慮。


 公有雲關鍵業務委託

將整個購票流程分析與設計後,將關鍵流程的環節—“餘票查詢”業務交由公有雲(阿里雲)來提供服務。但並不是“整個系統”託管,而是針對部分系統交給阿里雲服務。如此,這項關鍵、變化差異極大的雲端資源需求,就能達到按需擴容。


公有雲資源動態擴展

將“難預測、暫時性”的巨大訪問量—餘票查詢業務放在公有雲。公有雲可以按需動態調整網路頻寬和虛擬機資源,以保證12306的服務品質,並解決網路傳輸瓶頸問題。


 運用非結構化數據存儲

使用in-memory記憶體計算NoSQL 資料庫,取代傳統資料庫,大幅提升車票併發查詢能力,車票查詢的TPS /QPS (Transaction/Query per Second) 由不到1,000次/s提升至超過20,000次/s,RT (Response Time) 回應時間由原來的1 s 縮減至10 ms。


 運用佇列技術降低高併發交易影響

構建交易處理排隊系統。交易系統通過佇列接收用戶下單請求,讓後端系統得以非同步地處理佇列中下單請求,以避免高峰期併發高量的交易需求,造成系統無法處理資料庫更新等作業。


 業務連續性,應用不中斷的容災設計

利用雙資料中心並行作業,各中心擁有獨立的Web、應用伺服器、緩存服務叢集、車票查詢叢集、用戶及常用連絡人叢集、以及交易中介軟體等,可以分擔高負載運行,而且可以相互備份,並保證操作不間斷。


結語

混合雲的應用在許多方面已經不是口號,在私有雲上環境法規符合性與資料隱密性,及在公有雲的動態計算能力上取得有效平衡,愈來愈多成功案例證明這是一個可行的模式。有鑑於此,企業在各種考量取捨之下,將會採用愈來愈多混合雲架構,因此,對於混合雲的知識就愈發重要。


資料參考來源 : 不刷驗證碼!12306混合雲架構詳解




8.jpg

Hi! 我是Roger。

從事技術工作十多年了,

喜歡玩和瞭解學習各種技術的內涵,

喜歡聽、也喜歡分享各種狂想,

歡迎你跟我分享你的看法!




6.jpg


更多案例

x