混搭風(fēng)潮來襲!賣車票原來一點(diǎn)都不容易
文:吳冠輝 2020-05-26
發(fā)布時(shí)間: 2020-05-25 10:28:00
混合雲(yún) 公有雲(yún) 私有雲(yún) 雙模IT
混搭風(fēng)潮來襲!賣車票原來一點(diǎn)都不容易
解析大陸鐵路訂票系統(tǒng)12306所採(cǎi)用的混合雲(yún)方案,該系統(tǒng)面臨查詢、訂票交易的餘量間關(guān)聯(lián)變化、大併發(fā)需求等,利用混搭公有雲(yún)、佇列、記憶體計(jì)算等技術(shù)來架構(gòu)混合雲(yún)。
前期介紹混合雲(yún)概念、架構(gòu)以及解決方案,可能讀者還摸不著邊際。事實(shí)上,混合雲(yún)有許多實(shí)務(wù)案例非常值得參考,可從中學(xué)習(xí)到別的企業(yè)架構(gòu)混合雲(yún)的經(jīng)驗(yàn)。本篇將著重介紹大陸鐵路訂票系統(tǒng)12306所採(cǎi)用的混合雲(yún)方案,特別關(guān)注其如何架構(gòu)賣票系統(tǒng)及採(cǎi)用技術(shù)的細(xì)節(jié)與考量點(diǎn),以下就來探討這個(gè)案例。
賣車票是有多難!?
一聽到賣票系統(tǒng),大多數(shù)人都會(huì)認(rèn)為這是個(gè)簡(jiǎn)單問題。事實(shí)上,鐵路售票系統(tǒng)相較於其它售票系統(tǒng),諸如演唱會(huì)活動(dòng)等售票,其邏輯複雜度高出好幾倍。茲將鐵路售票系統(tǒng)最關(guān)鍵的兩個(gè)技術(shù)需求,說明如下:
1.數(shù)量變化:如果將每張可出售的火車票當(dāng)成一件商品來看,每張票的銷售都會(huì)影響到整條路線每個(gè)站點(diǎn)可銷售的餘票量。每張票銷售會(huì)讓有些站點(diǎn)的餘票量會(huì)產(chǎn)生變化、有些站點(diǎn)餘票量不會(huì)有變化。再者,當(dāng)銷售一張票、改簽或退票時(shí),整條路線每個(gè)站點(diǎn)的餘票量都需要重新計(jì)算。換句話說,每個(gè)站點(diǎn)的餘票庫存是個(gè)“動(dòng)態(tài)變化庫存”的概念。站點(diǎn)與站點(diǎn)之間的餘票庫存有巨大的關(guān)聯(lián)性。這種“動(dòng)態(tài)庫存”概念的業(yè)務(wù)邏輯是鐵路售票與電商網(wǎng)站最大的差異。
2.銷量變化:銷售量的概念是另一個(gè)重要問題。量變引發(fā)質(zhì)變,大陸鐵路訂票系統(tǒng)12306售票系統(tǒng)也面臨節(jié)假日和非節(jié)假日高高低低的需求。春運(yùn)的售票高峰期間的訪問流量(PV值)和平時(shí)訪問流量就高達(dá)上萬倍的差異。例如:春運(yùn)期間,12306售票系統(tǒng)可能達(dá)到一天200億的查詢、200萬以上的售票交易。面臨這樣的差異,系統(tǒng)不可能時(shí)時(shí)刻刻都準(zhǔn)備著高峰流量所需的軟硬體,因?yàn)槌杀緦?shí)在太高。因此,系統(tǒng)所需的計(jì)算資源有沒有方法可以依據(jù)需求佔(zhàn)有與釋放而進(jìn)行動(dòng)態(tài)調(diào)整?
混合雲(yún)的解決方案
圖、12306兩地三中心 混合雲(yún)架構(gòu)
大陸鐵路訂票系統(tǒng)12306售票系統(tǒng)根據(jù)其流量變化需求,陸續(xù)做一些優(yōu)化與改造,向混合雲(yún)邁進(jìn)。有關(guān)12306售票系統(tǒng)的技術(shù)採(cǎi)用方式,整理如下:
●?私有雲(yún)數(shù)據(jù)安全管理
對(duì)於公共服務(wù)平臺(tái)而言,敏感性和安全性的資料保護(hù)是首要考慮。在混合雲(yún)設(shè)計(jì)上,12306售票系統(tǒng)將這些資料存放在私有雲(yún)數(shù)據(jù)中心,確保數(shù)據(jù)安全無慮。
●?公有雲(yún)關(guān)鍵業(yè)務(wù)委託
將整個(gè)購(gòu)票流程分析與設(shè)計(jì)後,將關(guān)鍵流程的環(huán)節(jié)—“餘票查詢”業(yè)務(wù)交由公有雲(yún)(阿里雲(yún))來提供服務(wù)。但並不是“整個(gè)系統(tǒng)”託管,而是針對(duì)部分系統(tǒng)交給阿里雲(yún)服務(wù)。如此,這項(xiàng)關(guān)鍵、變化差異極大的雲(yún)端資源需求,就能達(dá)到按需擴(kuò)容。
● 公有雲(yún)資源動(dòng)態(tài)擴(kuò)展
將“難預(yù)測(cè)、暫時(shí)性”的巨大訪問量—餘票查詢業(yè)務(wù)放在公有雲(yún)。公有雲(yún)可以按需動(dòng)態(tài)調(diào)整網(wǎng)路頻寬和虛擬機(jī)資源,以保證12306的服務(wù)品質(zhì),並解決網(wǎng)路傳輸瓶頸問題。
●?運(yùn)用非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)
使用in-memory記憶體計(jì)算NoSQL 資料庫,取代傳統(tǒng)資料庫,大幅提升車票併發(fā)查詢能力,車票查詢的TPS /QPS (Transaction/Query per Second) 由不到1,000次/s提升至超過20,000次/s,RT (Response Time) 回應(yīng)時(shí)間由原來的1 s 縮減至10 ms。
●?運(yùn)用佇列技術(shù)降低高併發(fā)交易影響
構(gòu)建交易處理排隊(duì)系統(tǒng)。交易系統(tǒng)通過佇列接收用戶下單請(qǐng)求,讓後端系統(tǒng)得以非同步地處理佇列中下單請(qǐng)求,以避免高峰期併發(fā)高量的交易需求,造成系統(tǒng)無法處理資料庫更新等作業(yè)。
●?業(yè)務(wù)連續(xù)性,應(yīng)用不中斷的容災(zāi)設(shè)計(jì)
利用雙資料中心並行作業(yè),各中心擁有獨(dú)立的Web、應(yīng)用伺服器、緩存服務(wù)叢集、車票查詢叢集、用戶及常用連絡(luò)人叢集、以及交易中介軟體等,可以分擔(dān)高負(fù)載運(yùn)行,而且可以相互備份,並保證操作不間斷。
結(jié)語
混合雲(yún)的應(yīng)用在許多方面已經(jīng)不是口號(hào),在私有雲(yún)上環(huán)境法規(guī)符合性與資料隱密性,及在公有雲(yún)的動(dòng)態(tài)計(jì)算能力上取得有效平衡,愈來愈多成功案例證明這是一個(gè)可行的模式。有鑑於此,企業(yè)在各種考量取捨之下,將會(huì)採(cǎi)用愈來愈多混合雲(yún)架構(gòu),因此,對(duì)於混合雲(yún)的知識(shí)就愈發(fā)重要。
資料參考來源 : 不刷驗(yàn)證碼!12306混合雲(yún)架構(gòu)詳解
Hi! 我是Roger。
從事技術(shù)工作十多年了,
喜歡玩和瞭解學(xué)習(xí)各種技術(shù)的內(nèi)涵,
喜歡聽、也喜歡分享各種狂想,
歡迎你跟我分享你的看法!
更多案例