“余額寶”經(jīng)過不到一年的發(fā)展,已獲得大量用戶的認(rèn)可。本文將以故事的形式講述“余額寶”背后那些鮮為人知的艱辛歷程--如何從傳統(tǒng)架構(gòu)演變?yōu)樵朴?jì)算架構(gòu)。
一年前的現(xiàn)在,在杭州支付寶大樓里有個(gè)叫“春秋書院”的閉關(guān)室,里面一群緊張而興奮的年輕人在忙碌著。項(xiàng)目室巨大的落地窗前,站著一個(gè)面色凝重的人,他就是天弘基金創(chuàng)新事業(yè)部技術(shù)負(fù)責(zé)人樊振華,一個(gè)在金融IT領(lǐng)域有著豐富經(jīng)驗(yàn)的老兵。他看著窗外川流不息的汽車,深深地吸了一口氣。
這是一個(gè)只有代號但沒有名字的保密項(xiàng)目,內(nèi)部稱之為“2號項(xiàng)目”,2號項(xiàng)目的旺旺交流群的簽名上寫著“2013支付寶秘密武器”,足可見這個(gè)項(xiàng)目的重要性。
截止到今天,中國近億人因?yàn)檫@個(gè)項(xiàng)目受益,改變了自己的理財(cái)習(xí)慣。這個(gè)神秘的項(xiàng)目,就是余額寶。那么余額寶的初期業(yè)務(wù)背景是什么呢?由此引發(fā)出對IT系統(tǒng)建設(shè)的需求又是什么?
余額寶業(yè)務(wù)背景
在支付寶上賣基金的想法,在天弘基金電商負(fù)責(zé)人周曉明心中經(jīng)過多次的思考和錘煉,已逐漸清晰。他在向阿里小微金服集團(tuán)國內(nèi)事業(yè)群總裁樊治銘介紹余額寶模式的雛形時(shí),準(zhǔn)備了5分鐘的內(nèi)容,但只講1分鐘后,雙方即達(dá)成一致意見可以做、快速做,并期望余額寶能在6月份上線運(yùn)營。
雙方隨即行動起來,進(jìn)行了簡單的分工,支付寶負(fù)責(zé)余額寶在支付寶端的建設(shè)工作,而基金公司端負(fù)責(zé)與支付寶對接的直銷和清算系統(tǒng)的建設(shè)重任,就落到了樊振華頭上。
這是一個(gè)從來沒有人做過,也沒有人知道該如何做的創(chuàng)新業(yè)務(wù),面對支付巨大的用戶群體,在僅不足3個(gè)月的時(shí)間內(nèi),該如何設(shè)計(jì)基金的清算和直銷系統(tǒng),成為了樊振華面臨的頭號難題。2013年3月,樊振華一行與支付寶技術(shù)方進(jìn)行整體架構(gòu)溝通,這是傳統(tǒng)金融行業(yè)建設(shè)思路與互聯(lián)網(wǎng)技術(shù)路線的第一次沖突,雙方團(tuán)隊(duì)在閉關(guān)室足足討論了4天,確定下來一期系統(tǒng)的建設(shè)目標(biāo)和要解決的問題。
當(dāng)時(shí)主要面臨以下難點(diǎn)。
1、要能夠支持“千萬級”用戶的系統(tǒng)容量。
a)傳統(tǒng)的基金銷售系統(tǒng)主要是和第三方銷售機(jī)構(gòu),如銀行理財(cái)專柜、網(wǎng)上銀行進(jìn)行合作銷售。直銷系統(tǒng)能夠處理每天幾萬到幾十萬個(gè)用戶的開戶就完全夠用了。但“余額寶”面對的是數(shù)以億計(jì)的支付寶用戶,用戶的開戶數(shù)量和并發(fā)量與傳統(tǒng)業(yè)務(wù)有數(shù)量級的差異。
b)傳統(tǒng)基金的TA系統(tǒng)面對的用戶是以理財(cái)為目的的申購和贖回,因此每天清算的交易筆數(shù)要求也只有幾萬到幾十萬即可滿足。但“余額寶”的業(yè)務(wù)模式里,支付寶用戶的每一筆消費(fèi),都會轉(zhuǎn)化為一次基金的贖回,又加上海量的潛在用戶群,每日清算筆數(shù)將會是傳統(tǒng)模式的百倍甚至是千倍。
2、直銷系統(tǒng)和TA系統(tǒng)的融合。
a)傳統(tǒng)的直銷和TA是分別獨(dú)立的系統(tǒng),但對于接入支付寶這種入口交易空前頻繁、數(shù)據(jù)量極為龐大的需求而言,傳統(tǒng)的分離式文件交互方式不能滿足效率和優(yōu)化利用資源的要求。因此,項(xiàng)目組提出了功能整合、功能簡化、當(dāng)前庫和歷史庫分離的技術(shù)結(jié)構(gòu)。讓直銷和清算系統(tǒng)使用同一套數(shù)據(jù)庫,來避免數(shù)據(jù)拷貝帶來的業(yè)務(wù)時(shí)延。
3、7×24小時(shí)的基金直銷系統(tǒng)。
a)由于渠道的原因,傳統(tǒng)基金直銷系統(tǒng)的大多數(shù)開戶出現(xiàn)在銀行的工作日。因此系統(tǒng)能夠做到5×8小時(shí)即可滿足大部分客戶的需求。但互聯(lián)網(wǎng)的屬性是7×24小時(shí),因此系統(tǒng)也應(yīng)該具備7×24小時(shí)不間斷的服務(wù)能力。
4、支付寶與天弘基金雙方的數(shù)據(jù)傳輸與系統(tǒng)交互。
a)余額寶的直銷和清算系統(tǒng)會部署于天弘基金在天津的數(shù)據(jù)中心,而支付寶的“余額寶”系統(tǒng)部署在杭州,雙方之間的通信協(xié)議,遠(yuǎn)距離數(shù)據(jù)傳輸面臨很大的挑戰(zhàn)。
這樣,根據(jù)早期的建設(shè)需求,余額寶一期系統(tǒng)的架構(gòu)和系統(tǒng)容量規(guī)劃工作展開了序幕。
一期系統(tǒng)建設(shè)
距離上線時(shí)間只有不足3個(gè)月,樊振華和系統(tǒng)開發(fā)商金證科技的技術(shù)人員進(jìn)行了緊張的架構(gòu)工作。經(jīng)過數(shù)次討論,雙方有了初步的統(tǒng)一意見,并形成了建設(shè)目標(biāo)。
1、基于KCBP/KCXP的集群技術(shù),
a)系統(tǒng)第一要素是要滿足創(chuàng)新業(yè)務(wù)的技術(shù)支撐要求,經(jīng)雙方討論后,決定走較成熟的傳統(tǒng)金融技術(shù)路線。決定選用金證科技的KCBP/KCXP做集群。金證股份核心業(yè)務(wù)平臺KCBP(Kingdom Core Business Platform)是專門為證券基金交易系統(tǒng)設(shè)計(jì)的外層交易中間件,同時(shí)具有普通交易中間件的特征和功能,KCBP同時(shí)也支持跨平臺服務(wù)的開發(fā)與部署。為后續(xù)的可能出現(xiàn)的架構(gòu)調(diào)整留下預(yù)留空間。
b)金證通訊交換平KCXP(Kingdom Communication eXchange Platform)中間件技術(shù)在券商行業(yè)有大量應(yīng)用案例,具有很高的可靠性和可用性。并在數(shù)據(jù)傳輸效率、安全性和容錯(cuò)性、負(fù)載均衡以及擴(kuò)展性方面進(jìn)行了優(yōu)化,已經(jīng)足夠成熟。
2、基于傳統(tǒng)的IOE的基礎(chǔ)架構(gòu)。
a)在如此短時(shí)間內(nèi),有很多的功能優(yōu)化,業(yè)務(wù)流程更改等開發(fā)工作,再配合相關(guān)的測試,必須控制改動的范圍。因此基礎(chǔ)架構(gòu)決定采用傳統(tǒng)的HP/IBM/Oracle/EMC的方案,靠使用高端硬件設(shè)備的方式,提高一期系統(tǒng)的整體容量和性能。
3、直銷和TA的系統(tǒng)整合。
a)為了減少直銷系統(tǒng)和TA的數(shù)據(jù)傳輸延遲,決定兩個(gè)系統(tǒng)使用同一套數(shù)據(jù)庫架構(gòu)。
b)為了避免單點(diǎn)故障引起的業(yè)務(wù)中斷,應(yīng)用層的直銷和TA平均分布在每臺服務(wù)器上。確保每個(gè)應(yīng)用服務(wù)器的角色具備可替代性。
4、跨省的MSTP專線鏈路
a)天弘基金清算和交易中心在天津數(shù)據(jù)機(jī)房,通過架設(shè)兩條4M的MSTP專線,連接到支付寶杭州數(shù)據(jù)機(jī)房。兩條專線之間互為備份,確保通訊鏈路安全。
一期系統(tǒng)的架構(gòu)圖如下:
架構(gòu)解讀:支付寶實(shí)時(shí)開戶,申購,贖回等實(shí)時(shí)請求,和每天的離線對賬文件,都通過MSTP專線與一期系統(tǒng)進(jìn)行通訊。其中實(shí)時(shí)請求通過RADWARE硬件負(fù)載均衡分發(fā)到兩臺前置機(jī),前置機(jī)在做完報(bào)文解析以后,將請求發(fā)送到XP的消息隊(duì)列。然后由BP以主動負(fù)載均衡的機(jī)制,從XP中取出相應(yīng)請求進(jìn)行處理,處理結(jié)果保持到后端數(shù)據(jù)庫中。
幸福的煩惱
然而,在一期系統(tǒng)上線以后,面對業(yè)務(wù)量暴增的情況,系統(tǒng)遇到了瓶頸同時(shí)也出現(xiàn)了新的問題。
2013年6月13日,一期系統(tǒng)如期上線,業(yè)務(wù)量遠(yuǎn)超預(yù)期,給系統(tǒng)來了一個(gè)“下馬威”。上線后數(shù)分鐘內(nèi)就達(dá)到了18萬的用戶。在2013年6月18日晚上,余額寶的用戶量已突破了100萬。2013年6月30日,余額寶用戶數(shù)達(dá)到251.56萬。
在如此高速的業(yè)務(wù)增長壓力之下,一期系統(tǒng)開始面對前所未有的直銷和清算壓力的沖擊。這個(gè)新建的系統(tǒng),是否能夠支撐起如此大的容量沖擊?什么時(shí)候系統(tǒng)會達(dá)到瓶頸?這些問題,懸而未解讓樊振華陷入了深深的危機(jī)感中。在經(jīng)過了數(shù)個(gè)失眠之夜后,他還沒找到解決問題的辦法,但他清楚地知道,再這樣下去,一期系統(tǒng)將會很快面臨瓶頸,成為業(yè)務(wù)增長的絆腳石。
樊振華的擔(dān)憂很快變成了現(xiàn)實(shí),隨著用戶量的暴增,數(shù)據(jù)庫的負(fù)荷越來越高,實(shí)時(shí)請求的響應(yīng)時(shí)間開始變緩。清算時(shí)間由最初的半個(gè)小時(shí)慢慢地變成一個(gè)小時(shí)、兩個(gè)小時(shí)、四個(gè)小時(shí)……清算系統(tǒng)每天會在凌晨收到支付寶最后一筆確認(rèn)文件開始清算,天弘基金的后臺運(yùn)營人員會等候清算出結(jié)果以后,發(fā)送給監(jiān)管行和支付寶。隨著這些人回家的時(shí)間越來越晚,抱怨聲開始出現(xiàn),樊振華的壓力也隨之增大。
系統(tǒng)的擴(kuò)容勢在必行。然而,當(dāng)樊振華收到金證科技發(fā)來報(bào)價(jià)表,打開第一頁時(shí),他驚呆了。如果依然使用IBM/Oracle/EMC的傳統(tǒng)架構(gòu)進(jìn)行擴(kuò)容,要達(dá)到預(yù)定目標(biāo),僅僅硬件設(shè)備采購及中間件的Licence費(fèi)用就達(dá)到了數(shù)千萬元人民幣。這個(gè)數(shù)字對于樊振華來講,甚至對于天弘基金這家公司來講,是一個(gè)天文數(shù)字,超過了這家公以往所有對于IT投資的總和。并且設(shè)備采購到貨就要一個(gè)月以上,想在一期系統(tǒng)瓶頸出現(xiàn)前完成擴(kuò)容幾乎不可能實(shí)現(xiàn)。
傳統(tǒng)的路線走不通,就要找新的方法。當(dāng)他得知阿里云計(jì)算作為一家云計(jì)算服務(wù)提供商,使用云計(jì)算支撐了海量的互聯(lián)網(wǎng)企業(yè)及阿里集團(tuán)自身業(yè)務(wù)時(shí),樊振華開始和阿里云計(jì)算進(jìn)行接觸。2013年7月,樊振華組織阿里云、支付寶、金證科技的人一起探求解決方案。最終經(jīng)過慎重思考,樊振華心一橫,說了句:“不要再討論了,上云,上阿里云!”
上云吧,騰飛
上云之路,困難重重,舉步維艱。
上云并非一句話那么簡單,使用云計(jì)算支撐當(dāng)時(shí)國內(nèi)最大的基金直銷和清算系統(tǒng),前無古人,但開弓沒有回頭箭。樊振華召集了支付寶、阿里云、金證科技的人一起,啟動將直銷和清算系統(tǒng)整體遷移到云計(jì)算架構(gòu),簡稱二期系統(tǒng)。
阿里金融云為二期系統(tǒng)提供了一下云計(jì)算服務(wù)ECS(彈性計(jì)算服務(wù)),RDS(關(guān)系型數(shù)據(jù)庫服務(wù)),SLB(負(fù)載均衡服務(wù))。這三個(gè)服務(wù)分別對應(yīng)于一期系統(tǒng)中的HP和IBM服務(wù)器,Oracle數(shù)據(jù)庫,硬件負(fù)載均衡設(shè)備。但這三種服務(wù)的單個(gè)實(shí)例的性能和容量,都比相應(yīng)的物理設(shè)備小上一大截。如何用單機(jī)性能更小的云計(jì)算服務(wù)來支撐那些單機(jī)性能更強(qiáng)都難以支撐的系統(tǒng)呢?經(jīng)過深入的了解,樊振華在心中已經(jīng)有了答案:“蟻群戰(zhàn)術(shù)”。
俗話說“三個(gè)臭皮匠,頂個(gè)諸葛亮”,“蟻群戰(zhàn)術(shù)”就是要充分利用云計(jì)算服務(wù)的快速部署能力(5分鐘內(nèi)可以創(chuàng)建數(shù)百臺ECS),彈性伸縮能力,安全穩(wěn)定,的特性,使用水平拆分算法,將應(yīng)用系統(tǒng)水平拆分為數(shù)十組甚至上百組平行運(yùn)行的小系統(tǒng),這些小系統(tǒng)組合起來,就可以支撐起海量的請求和超高的性能。
此時(shí)已經(jīng)進(jìn)入到7月中旬。按照對一期系統(tǒng)運(yùn)行狀況趨勢的評估,一期系統(tǒng)的容量在沒有任何運(yùn)營推廣活動的情況下,只能支撐到9月份便會面臨瓶頸。樊振華還為理清楚二期的性能和容量設(shè)計(jì)目標(biāo)時(shí),又接到了新的壓力:天弘基金和支付寶管理層已經(jīng)決定余額寶要參加阿里雙十一,雙十一是網(wǎng)民們年度的購物狂歡節(jié),但對于后臺支撐的技術(shù)人眼來講,絕對是一場惡戰(zhàn)。很快,傳來了支付寶對天弘提出的雙十一支撐要求:
1、實(shí)時(shí)請求的相應(yīng)要超過1000筆每秒。
2、清算系統(tǒng)要支持單日3億筆交易清算,清算時(shí)間不得超過150分鐘。
3、10月份支付寶會展開相關(guān)運(yùn)營活動,必須在10月份前上線。
面對這樣幾近變態(tài)的要求,只有2兩個(gè)月的系統(tǒng)改造時(shí)間,項(xiàng)目組遇到了巨大的困難:
1、如何進(jìn)行系統(tǒng)水平拆分:
a)按照“蟻群戰(zhàn)術(shù)”,將原有系統(tǒng)的業(yè)務(wù)邏輯水平拆分成多組小系統(tǒng)。如何才能保證拆分盡可能平均和拆分后的擴(kuò)展性是一個(gè)繞不過去的難點(diǎn)。水平拆分依據(jù)那個(gè)字段來做拆分,需要根據(jù)業(yè)務(wù)特性慎重考慮。一個(gè)細(xì)節(jié)考慮不到,會導(dǎo)致全盤皆輸。
2、將Oracle替換為mysql。
a)Mysql無論是單機(jī)性能和功能,都遠(yuǎn)遠(yuǎn)與單機(jī)的oracle無法匹敵。使用mysql代替oracle,原有的存儲過程怎么辦?一些涉及多表join的操作在mysql下執(zhí)行效率較低還如何解決。工作量有多大,沒人清楚。
3、數(shù)據(jù)遷移工程浩大,難度極高。
a)一期系統(tǒng)部署在天弘基金在天津的數(shù)據(jù)中心,而二期系統(tǒng)卻部署在阿里云在杭州的節(jié)點(diǎn),如何做到無縫割接?并且考慮到互聯(lián)網(wǎng)用戶的用戶體驗(yàn),一期系統(tǒng)和二期系統(tǒng)在上線期間,不允許出現(xiàn)業(yè)務(wù)中斷,項(xiàng)目組必須在大數(shù)據(jù)量,異構(gòu)環(huán)境,遠(yuǎn)程遷移等復(fù)雜環(huán)境下,實(shí)現(xiàn)無縫遷移。做到上線過程最終客戶無感知。
4、直銷和TA系統(tǒng)的資源爭搶問題
a)一期方案將直銷和TA進(jìn)行了融合,來解決數(shù)據(jù)交互問題。但由于傳統(tǒng)的TA與實(shí)時(shí)請求在不同時(shí)段運(yùn)行,所以采用了主動爭搶機(jī)制的負(fù)載均衡,及貪婪式的CPU占用。以保證充分利用硬件資源完成業(yè)務(wù)清算。才傳統(tǒng)模式下沒有問題,但一期系統(tǒng)進(jìn)行合并以后,TA和實(shí)時(shí)請求的應(yīng)用系統(tǒng)部署同一組服務(wù)器上,每次TA系統(tǒng)啟動清算的時(shí)間段,會嚴(yán)重影響實(shí)時(shí)請求的相應(yīng)時(shí)間,甚至造成響應(yīng)失敗。
5、整個(gè)架構(gòu)保持2年以上的系統(tǒng)擴(kuò)容能力
a)上云后的系統(tǒng)必須能夠滿足業(yè)務(wù)量飛速高漲的情況下,可以根據(jù)業(yè)務(wù)量的大小做到無縫升級。2年之內(nèi),不能因?yàn)閿U(kuò)容而改變系統(tǒng)架構(gòu)。在保證擴(kuò)容性的前提下,經(jīng)濟(jì)和投入必須控制在合理范圍。
這些問題,不管是樊振華,還是金證科技,在分布式系統(tǒng)和云計(jì)算這個(gè)領(lǐng)域,雖然了解很多,但真正動刀槍,還是第一次。即使阿里云和支付寶的技術(shù)人員,在這么短的時(shí)間內(nèi),要解決這么多難題,也都不禁捏一把汗。
走投無路,背水一戰(zhàn)。
樊振華清楚他已經(jīng)沒有退路,只有往前走才是出路。他召集阿里云,天弘基金,金證科技,支付寶四方的技術(shù)人員在閉關(guān)室全部進(jìn)行封閉式開發(fā),一場艱苦的戰(zhàn)役就此打響。
“管不了那么多,這些只能一個(gè)一個(gè)解決,不然怎么辦?”樊振華每次面對棘手的困難的時(shí)候總會說這么一句。但困難都是終究會被解決:
1、系統(tǒng)水平拆分
a)系統(tǒng)拆分的基本原理很簡單,就是按照一個(gè)業(yè)務(wù)字段,比如支付寶協(xié)議號作為拆分依據(jù)。對字段取哈希值以后根據(jù)拆分虛節(jié)點(diǎn)的個(gè)數(shù)進(jìn)行求模。這樣就可以簡單的將所有的請求拆分成多份。
b)在二期系統(tǒng)的拆分過程中,經(jīng)過測算,需要使用50組業(yè)務(wù)節(jié)點(diǎn),但在拆分的時(shí)候,考慮到擴(kuò)展性。并未簡單的拆分成50份。而是拆分成1000份,然后每個(gè)節(jié)點(diǎn)處理20份的數(shù)據(jù)。這樣做的好處就是將來如果系統(tǒng)遇到瓶頸,需要擴(kuò)容的時(shí)候,不需要對拆分算法進(jìn)行修改,而且數(shù)據(jù)平均遷移的時(shí)候只需要以庫為級別進(jìn)行,從而避免了拆表。
2、去oracle
a)去oracle其實(shí)并無捷徑,都需要扎扎實(shí)實(shí)的一點(diǎn)點(diǎn)完成。首先是將存儲過程等mysql不支持或支持不好的數(shù)據(jù)庫邏輯上移到應(yīng)用中。
b)其次要將復(fù)雜度比較高的sql語句進(jìn)行拆分,變成多條簡單的sql語句。從而提高mysql的執(zhí)行效率。
c)阿里云的RDS提供的慢sql查詢功能,可以將整個(gè)系統(tǒng)執(zhí)行效率比較慢的sql呈現(xiàn)給用戶,幫助用戶優(yōu)化SQL語句。
3、數(shù)據(jù)遷移。
a)數(shù)據(jù)遷移是這個(gè)項(xiàng)目的重頭戲,遷移過程中使用全量+增量+數(shù)據(jù)訂正+并行運(yùn)行檢查等幾個(gè)階段完成。
b)二期系統(tǒng)在生產(chǎn)環(huán)境部署完成后,將在天津的一期系統(tǒng)的全量數(shù)據(jù)打包,按照指定拆分算法拆成1000份以后,通過專線導(dǎo)入到二期系統(tǒng)中。導(dǎo)入以后,將天津的一期系統(tǒng)前置機(jī)轉(zhuǎn)發(fā)服務(wù)打開,將所有實(shí)時(shí)請求轉(zhuǎn)發(fā)到二期系統(tǒng),這樣兩個(gè)系統(tǒng)同時(shí)處理請求。然后在交易日之后,以一期系統(tǒng)為準(zhǔn),將二期系統(tǒng)中的數(shù)據(jù)進(jìn)行訂正,補(bǔ)全。這些所有的操作必須在24小時(shí)內(nèi)完成是遷移成功的必要條件。
c)數(shù)據(jù)遷移成功之后,兩個(gè)系統(tǒng)實(shí)際上在并行運(yùn)行。需要使用腳本每天對比兩個(gè)系統(tǒng)中的數(shù)據(jù),連續(xù)2周數(shù)據(jù)對比無誤以后,由支付寶將請求地址從一期系統(tǒng)切換到二期系統(tǒng),整個(gè)遷移才算完成。
4、直銷和TA的再次分離
a)借助云計(jì)算快速靈活的機(jī)制,將直銷系統(tǒng)和TA系統(tǒng)的應(yīng)用邏輯層進(jìn)行完全分開,分開后的直銷和TA系統(tǒng)分別運(yùn)行在一組ECS中,兩套系統(tǒng)后端連接同一套的RDS數(shù)據(jù)庫服務(wù)。這樣既能保證TA和直銷系統(tǒng)在應(yīng)用性能上不會發(fā)生爭搶,而且又不會發(fā)生數(shù)據(jù)傳遞問題。
5、擴(kuò)容性保證
a)除了在水平拆分算法的時(shí)候就采用雙重映射的機(jī)制來保證架構(gòu)本身的擴(kuò)容性,還充分利用了阿里云云服務(wù)可以無縫升級的特性,來進(jìn)行容量保證。
b)拿RDS數(shù)據(jù)庫來講,阿里云提供了新1型到新7型等7個(gè)型號,性能逐漸增強(qiáng)。最終選擇了新5型做為數(shù)據(jù)庫服務(wù)器,并沒有一步到位采用最高型號。這樣當(dāng)系統(tǒng)出現(xiàn)瓶頸的時(shí)候,就可以通過將所有RDS從新5性升級到更高型號來將系統(tǒng)容量翻倍。
架構(gòu)解讀
將清算和直銷的集群分為兩組獨(dú)立的集群,但使用相同的RDS數(shù)據(jù)庫服務(wù).這樣既避免了在應(yīng)用層面的資源爭搶,又可以做到數(shù)據(jù)的共享.其中實(shí)時(shí)請求會先到達(dá)4個(gè)互為冗余備份的SLB(負(fù)載均衡),避免SLB單點(diǎn)故障.SLB將請求轉(zhuǎn)發(fā)給5臺前置機(jī),前置機(jī)會按照拆分算法,將該請求路由到相應(yīng)的節(jié)點(diǎn)進(jìn)行處理,該節(jié)點(diǎn)處理完畢后,數(shù)據(jù)保存到改組對應(yīng)的RDS數(shù)據(jù)庫.而每日的對賬文件則通過文件服務(wù)器進(jìn)行拆分,然后清算系統(tǒng)的每個(gè)節(jié)點(diǎn)主動取出自己處理的文件進(jìn)行清算處理,然后保存到數(shù)據(jù)庫。
歷盡磨難,涅槃重生
經(jīng)過2個(gè)多月的封閉式開發(fā),在上線之前,二期系統(tǒng)進(jìn)行了嚴(yán)格的壓力測試,測試結(jié)果讓樊振華懸著的心終于放下了。
TA系統(tǒng)完成3億筆訂單的清算,可以在6400秒內(nèi)清算完成返回給支付寶,完全符合項(xiàng)目150分鐘。對開戶的實(shí)時(shí)請求,項(xiàng)目目標(biāo)要求達(dá)到1000筆每秒。壓測的數(shù)據(jù)輕松達(dá)到5000筆每秒。并且具備11000筆每秒的儲備能力隨時(shí)可放開。 二期系統(tǒng)終于在2013年9月26日上午正式上線成功。在上線的前一天,一期系統(tǒng)每天完成清算需要8個(gè)小時(shí),而上線后的那天,二期系統(tǒng)完成了她第一次的清算,只用了不到30分鐘。這個(gè)結(jié)果讓那些經(jīng)歷多個(gè)不眠之夜的后臺運(yùn)營人員眉開眼笑,終于可以在晚上回家睡覺了。實(shí)時(shí)請求的響應(yīng)時(shí)間老系統(tǒng)為180ms,上云以后,平均130ms。效果明顯。如下圖:
萬事具備,只欠東風(fēng),只有經(jīng)過“雙十一”海量交易量的摧殘,才能驗(yàn)證系統(tǒng)是符合設(shè)計(jì)要求的。2013年11月11日 余額寶首次參加”雙十一”大促,完成1679萬筆贖回,1288萬筆申購的清算工作,成功為639萬用戶正確分配收益。當(dāng)天處理了61.25億元的消費(fèi)贖回,119.97億元的轉(zhuǎn)入申購。完成這些所有的清算工作,系統(tǒng)只用了46分鐘!
云計(jì)算是萬能的嗎?
總結(jié)在上云以后至今的業(yè)務(wù)發(fā)展?fàn)顩r,數(shù)據(jù)暴增以后,面臨的新問題,拋出面臨的數(shù)據(jù)問題,引發(fā)思考
這一路走來,就像直銷和TA系統(tǒng)經(jīng)歷了分開,合并,再分開的演進(jìn)路線,讓樊振華想起一句話“天下之勢,分久必合,合久必分”。過去這么多年,以IOE為主的集中式計(jì)算已經(jīng)告一段落,在這個(gè)互聯(lián)網(wǎng)的時(shí)代,云計(jì)算和分布式的結(jié)合代替集中式計(jì)算已經(jīng)深深植入他的腦海之中。
此時(shí)的樊振華,已經(jīng)和一年前的他截然不同,一年前,他還在為各種硬件選型,采購流程而忙碌。但一年后,他更喜歡在人們面前談起的是云計(jì)算,大數(shù)據(jù),分布式,用戶體驗(yàn),互聯(lián)網(wǎng)的IT架構(gòu)等名詞。
具備強(qiáng)大水平擴(kuò)容能力的二期系統(tǒng),足以讓這個(gè)飽經(jīng)歷練的老兵高枕無憂,休息一陣子,再也不用擔(dān)心系統(tǒng)容量和高并發(fā)的問題。但有一顆種子,在樊振華的心目中開始發(fā)芽:他清晰的知道,如今這個(gè)二期系統(tǒng)已經(jīng)不是簡單的直銷和清算系統(tǒng),每天沉淀在50個(gè)數(shù)據(jù)庫里的海量用戶和交易的數(shù)據(jù)量在暴漲,如何存儲這些數(shù)據(jù)?如何使用這些數(shù)據(jù)?該如何才能產(chǎn)生最大的價(jià)值?
未來如何發(fā)展
有了這顆種子,樊振華休了個(gè)短假,他又開始了新的征程,投入了大數(shù)據(jù)的懷抱,這一次,他選擇了阿里云提供的ODPS(開放數(shù)據(jù)處理服務(wù))來作為自己的大數(shù)據(jù)平臺。ODPS目前是阿里集團(tuán)進(jìn)行離線數(shù)據(jù)處理的平臺,其支撐了阿里金融,淘寶等多家Bu的大數(shù)據(jù)業(yè)務(wù)。有了這個(gè)平臺作為后盾,樊振華清晰了很多,他腦海中復(fù)現(xiàn)了一幅畫面:在不久的將來,通過對目前沉淀的海量數(shù)據(jù)的分析,可以把握成千上億的用戶的理財(cái)需求及不同的風(fēng)險(xiǎn)接受能力。而天弘基金,根據(jù)這些客戶的情況,提供更多更豐富的理財(cái)產(chǎn)品?;蛟S到那一天,讓天下所有的人享受到符合自己的理財(cái)服務(wù)真不是夢想了。