支付寶單元化架構(gòu)實(shí)踐

架構(gòu)師技術(shù)聯(lián)盟的業(yè)務(wù)多活架構(gòu)和分布式CAP實(shí)戰(zhàn),單元化架構(gòu)實(shí)踐的學(xué)習(xí)筆記

我們不僅僅從淘寶買東西唬滑,把錢放到支付寶中其屏,也要從他們能給全國乃至世界十幾億人提供購物平臺和支付平臺的技術(shù)架構(gòu)中學(xué)到一些皮毛亚铁。

螞蟻支付寶是國內(nèi)最大的支付工具棚愤,其在雙 11 等活動日當(dāng)日的支付 TPS 可達(dá)幾十萬級骏庸,未來這個數(shù)字可能會更大髓涯,這決定了螞蟻單元化架構(gòu)從容量要求上看必然從單機(jī)房走向多機(jī)房袒啼。

支付寶將單元分成了三類(CRG 架構(gòu)):

1) RZone(Region Zone):所有可以分庫分表的業(yè)務(wù)系統(tǒng)整體部署的最小單元。每個 RZone 連上數(shù)據(jù)庫就可以撐起一片天空纬纪,把業(yè)務(wù)跑的溜溜的蚓再。

2) GZone(Global Zone):全局單元,意味著全局只有一份包各。部署了不可拆分的數(shù)據(jù)和服務(wù)摘仅,比如系統(tǒng)配置等。實(shí)際情況下问畅,GZone 異地也會部署娃属,不過僅是用于災(zāi)備,同一時刻护姆,同一時刻矾端,只有一地 GZone 進(jìn)行全局服務(wù)。GZone 一般被 RZone 依賴卵皂,提供的大部分是讀取服務(wù)秩铆。

3) CZone(City Zone):以城市為單位部署的單元。同樣部署了不可拆分的數(shù)據(jù)和服務(wù)灯变,比如用戶賬號服務(wù)豺旬,客戶信息服務(wù)等。理論上 CZone 會被 RZone 以比訪問 GZone 高很多的頻率進(jìn)行訪問柒凉。CZone 是基于特定的 GZone 場景進(jìn)行優(yōu)化的一種單元族阅,它把 GZone 中有些有著”寫讀時間差現(xiàn)象”的數(shù)據(jù)和服務(wù)進(jìn)行了的單獨(dú)部署,這樣 RZone 只需要訪問本地的 CZone 即可膝捞,而不是訪問異地的 GZone坦刀。

"寫讀時間差現(xiàn)象”是螞蟻架構(gòu)師們根據(jù)實(shí)踐統(tǒng)計(jì)總結(jié)的,他們發(fā)現(xiàn)大部分情況下蔬咬,一個數(shù)據(jù)被寫入后鲤遥,都會過足夠長的時間后才會被訪問

生活中這種例子很常見林艘,我們辦完銀行卡后可能很久才會存第一筆錢盖奈;我們創(chuàng)建微博賬號后,可能想半天才會發(fā)微博狐援;我們下載創(chuàng)建淘寶賬號后钢坦,可能得瀏覽好幾分鐘才會下單買東西究孕。

當(dāng)然了這些例子中的時間差遠(yuǎn)遠(yuǎn)超過了系統(tǒng)同步時間。一般來說異地的延時在100ms以內(nèi)爹凹,所以只要滿足某地CZone寫入數(shù)據(jù)后100ms以后才用這個數(shù)據(jù)厨诸,這樣的數(shù)據(jù)和服務(wù)就適合放到 CZone 中。

相信大家看到這都會問:為啥分這三種單元禾酱?其實(shí)其背后對應(yīng)的是不同性質(zhì)的數(shù)據(jù)微酬,而服務(wù)不過是對數(shù)據(jù)的操作集。

下面我們來根據(jù)數(shù)據(jù)性質(zhì)的不同來解釋支付寶的 CRG 架構(gòu)颤陶。當(dāng)下幾乎所有互聯(lián)網(wǎng)公司的分庫分表規(guī)則都是根據(jù)用戶ID來制定的颗管。

而圍繞用戶來看整個系統(tǒng)的數(shù)據(jù)可以分為以下兩類:

1) 用戶流水型數(shù)據(jù):典型的有用戶的訂單、用戶發(fā)的評論滓走、用戶的行為記錄等垦江。這些數(shù)據(jù)都是用戶行為產(chǎn)生的流水型數(shù)據(jù),具備天然的用戶隔離性闲坎,比如A用戶的App上絕對看不到 B 用戶的訂單列表疫粥。所以此類數(shù)據(jù)非常適合分庫分表后獨(dú)立部署服務(wù)。

2) 用戶間共享型數(shù)據(jù):這種類型的數(shù)據(jù)又分兩類腰懂。一類共享型數(shù)據(jù)是像賬號梗逮、個人博客等可能會被所有用戶請求訪問的用戶數(shù)據(jù)。比如 A 向 B 轉(zhuǎn)賬绣溜,A 給 B 發(fā)消息慷彤,這時候需要確認(rèn) B 賬號是否存在;又比如 A 想看 B 的個人博客之類的怖喻。

另外一類是用戶無關(guān)型數(shù)據(jù)底哗,像商品、系統(tǒng)配置(匯率锚沸、優(yōu)惠政策)跋选、財(cái)務(wù)統(tǒng)計(jì)等這些非用戶緯度的數(shù)據(jù),很難說跟具體的某一類用戶掛鉤哗蜈,可能涉及到所有用戶前标。比如商品,假設(shè)按商品所在地來存放商品數(shù)據(jù)(這需要雙維度分庫分表)距潘,那么上海的用戶仍然需要訪問杭州的商品炼列。

這就又構(gòu)成跨地跨 Zone 訪問了,還是達(dá)不到單元化的理想狀態(tài)音比,而且雙維度分庫分表會給整個 LDC 運(yùn)維帶來復(fù)雜度提升俭尖。

直觀的類比,我們可以很輕易的將上述兩類數(shù)據(jù)對應(yīng)的服務(wù)劃分為 RZone 和 GZone,RZone 包含的就是分庫分表后負(fù)責(zé)固定客戶群體的服務(wù)稽犁,GZone 則包含了用戶間共享的公共數(shù)據(jù)對應(yīng)的服務(wù)焰望。

GZone 之所以只能單地部署,是因?yàn)槠鋽?shù)據(jù)要求被所有用戶共享缭付,無法分庫分表柿估,而多地部署會帶來由異地延時引起的不一致循未。

比如實(shí)時風(fēng)控系統(tǒng)陷猫,如果多地部署,某個 RZone 直接讀取本地的話的妖,很容易讀取到舊的風(fēng)控狀態(tài)绣檬,這是很危險的。

這時螞蟻架構(gòu)師們問了自己一個問題——難道所有數(shù)據(jù)受不了延時么嫂粟?這個問題像是打開了新世界的大門娇未,通過對 RZone 已有業(yè)務(wù)的分析,架構(gòu)師們發(fā)現(xiàn) 80% 甚至更高的場景下星虹,數(shù)據(jù)更新后都不要求立馬被讀取到零抬。

也就是上文提到的”寫讀時間差現(xiàn)象”,那么這就好辦了宽涌,對于這類數(shù)據(jù)平夜,我們允許每個地區(qū)的 RZone 服務(wù)直接訪問本地,為了給這些 RZone 提供這些數(shù)據(jù)的本地訪問能力卸亮,螞蟻架構(gòu)師設(shè)計(jì)出了 CZone忽妒。

在 CZone 的場景下,寫請求一般從 GZone 寫入公共數(shù)據(jù)所在庫兼贸,然后同步到整個 OB 集群段直,然后由 CZone 提供讀取服務(wù)。比如支付寶的會員服務(wù)就是如此溶诞。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸯檬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子螺垢,更是在濱河造成了極大的恐慌喧务,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甩苛,死亡現(xiàn)場離奇詭異蹂楣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)讯蒲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門痊土,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人墨林,你說我怎么就攤上這事赁酝》胳簦” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵酌呆,是天一觀的道長衡载。 經(jīng)常有香客問我,道長隙袁,這世上最難降的妖魔是什么痰娱? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮菩收,結(jié)果婚禮上梨睁,老公的妹妹穿的比我還像新娘。我一直安慰自己娜饵,他們只是感情好坡贺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著箱舞,像睡著了一般遍坟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晴股,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天愿伴,我揣著相機(jī)與錄音,去河邊找鬼队魏。 笑死公般,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胡桨。 我是一名探鬼主播官帘,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昧谊!你這毒婦竟也來了刽虹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤呢诬,失蹤者是張志新(化名)和其女友劉穎涌哲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尚镰,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡阀圾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了狗唉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片初烘。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肾筐,到底是詐尸還是另有隱情哆料,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布吗铐,位于F島的核電站东亦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏唬渗。R本人自食惡果不足惜典阵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谣妻。 院中可真熱鬧萄喳,春花似錦卒稳、人聲如沸蹋半。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽减江。三九已至,卻和暖如春捻爷,著一層夾襖步出監(jiān)牢的瞬間辈灼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工也榄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巡莹,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓甜紫,卻偏偏與公主長得像降宅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子囚霸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容