溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

發(fā)布時(shí)間:2020-06-12 04:01:48 來源:網(wǎng)絡(luò) 閱讀:1303 作者:Java_老男孩 欄目:編程語言

本文整理自,阿里高級(jí)技術(shù)專家-許文奇在2019阿里云峰會(huì)上的分享《技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐》,結(jié)合技術(shù)領(lǐng)導(dǎo)力社區(qū)架構(gòu)專家的點(diǎn)評(píng)和解讀,全面解析阿里技術(shù)中臺(tái)的架構(gòu)實(shí)踐。

一、分布式架構(gòu)的優(yōu)勢(shì)和理念

1.傳統(tǒng)單體架構(gòu)特點(diǎn)

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

通常一個(gè)初創(chuàng)型項(xiàng)目,都是從單體架構(gòu)開始的。

優(yōu)點(diǎn)就是快,易于開發(fā)、測試、部署,一個(gè)WAR包發(fā)上生產(chǎn)就完事了。

缺點(diǎn)也很明顯,因?yàn)樗心K都在一個(gè)程序包里,導(dǎo)致編譯慢、啟動(dòng)慢、代碼沖突,每次合并代碼的時(shí)候都是惡夢(mèng),發(fā)布成功率?完全靠運(yùn)氣。

2.微服務(wù)架構(gòu)?vs?單體架構(gòu)

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

復(fù)雜度較小時(shí)采用單體應(yīng)用生產(chǎn)效率更高,復(fù)雜度到了一定規(guī)模時(shí)單體應(yīng)用的生產(chǎn)效率開始急劇下降,這時(shí)對(duì)其進(jìn)行服務(wù)化拆分才是合算的。

微服務(wù)架構(gòu)之所以得到廣泛認(rèn)可,源于對(duì)業(yè)務(wù)多變性的不可預(yù)測,微服架構(gòu)能夠不斷的自演化 ,進(jìn)而快速適應(yīng)業(yè)務(wù)變化。

3.模塊化開發(fā)

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

微服務(wù)架構(gòu),從業(yè)務(wù)頂層設(shè)計(jì)開始,按照業(yè)務(wù)線進(jìn)行模塊拆分,從表現(xiàn)層、邏輯層、數(shù)據(jù)層進(jìn)行獨(dú)立的剝離單體應(yīng)用。很多企業(yè)都經(jīng)歷過單體應(yīng)用到服務(wù)化應(yīng)用的拆分過程,這里要注意業(yè)務(wù)的連續(xù)性、數(shù)據(jù)的完整性問題。

4.微服務(wù)架構(gòu)的負(fù)載均衡優(yōu)勢(shì)

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

以前通常用LVS、F5作為接入層的負(fù)載均衡服務(wù),主要提供限流、負(fù)載、安全等等。

在微服務(wù)架構(gòu)中,由網(wǎng)關(guān)作為接入層,提供輕量級(jí)的負(fù)載均衡、協(xié)議轉(zhuǎn)換、鑒權(quán)等服務(wù),微服務(wù)通常有服務(wù)治理框架,如DUBBO等,提供服務(wù)治理、服務(wù)注冊(cè)、服務(wù)發(fā)現(xiàn)、隔離等。

5.數(shù)據(jù)訪問瓶頸解決方案--數(shù)據(jù)庫垂直切分

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

分布式架構(gòu)是如何解決數(shù)據(jù)訪問瓶頸的呢?首先是數(shù)據(jù)庫的垂直切分,比如,按用戶、交易、賬務(wù)拆分到獨(dú)立的數(shù)據(jù)庫當(dāng)中,緩解了數(shù)據(jù)存儲(chǔ)和訪問的壓力,當(dāng)然也可以做主備庫,進(jìn)行讀寫分離的。

6.數(shù)據(jù)訪問瓶頸解決方案--數(shù)據(jù)庫水平切分

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

其次,進(jìn)行數(shù)據(jù)庫的水平切分,比如交易數(shù)據(jù)庫和數(shù)據(jù)表的數(shù)據(jù)量太大,可以按交易時(shí)間進(jìn)行分表、分庫,拆分表的數(shù)量計(jì)算方法見上圖。

拆表拆庫是解決數(shù)據(jù)訪問、存儲(chǔ)問題,但是會(huì)給數(shù)據(jù)查詢帶來很大的麻煩,比如跨多表、多庫的復(fù)雜查詢場景。解決的辦法很多,通常有:用ES進(jìn)行復(fù)雜查詢,篩用ID再到庫里撈數(shù)據(jù)(即復(fù)雜查詢拆分多次查詢),或用分布式海量數(shù)據(jù)庫方案,不去做太細(xì)粒度的拆分庫表,如下面會(huì)提到的OceanBase。

二、分布式架構(gòu)實(shí)踐舉例--分布式TA系統(tǒng)

1.傳統(tǒng)TA系統(tǒng)架構(gòu)

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

傳統(tǒng)TA系統(tǒng)架構(gòu),清算串行效率低,無法通過增加機(jī)器線性擴(kuò)展性能,一般使用大事務(wù),出現(xiàn)問題全部回滾。

2.分布式TA系統(tǒng)架構(gòu)

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

分布式TA系統(tǒng)架構(gòu),結(jié)構(gòu)更合理,也更復(fù)雜。分成了:接入層、業(yè)務(wù)服務(wù)層、SOFAStack層、LAAS、運(yùn)維工具鏈、治理控制。

接入層:包括協(xié)議轉(zhuǎn)換、訪問控制、文件傳輸、運(yùn)維工作臺(tái)。

業(yè)務(wù)服務(wù)層:即業(yè)務(wù)核心邏輯服務(wù),如:賬戶、交易、賬單、清算等。

SOFAStack:螞蟻金服的通用服務(wù)組件,許多都開源了,包括:微服務(wù)框架、分布式事務(wù)、任務(wù)調(diào)度、消息隊(duì)列、數(shù)據(jù)代理、鏈路跟蹤等。

分布式TA系統(tǒng)的需求攻克的技術(shù)難題。分布式清算任務(wù)如何高效實(shí)現(xiàn)?分布式下,加大應(yīng)用處理出錯(cuò)可能性,那清算任務(wù)如何確保正確性?下面會(huì)談?wù)勅绾谓鉀Q。

3.分布式任務(wù)調(diào)度平臺(tái)

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

分布式任務(wù)調(diào)度平臺(tái),支持:

自定義分片,高效利用集群計(jì)算能力。

執(zhí)行中可對(duì)任務(wù)進(jìn)行暫停/續(xù)跑,強(qiáng)制取消。

任務(wù)失敗重試機(jī)制,保障整體計(jì)算任務(wù)成功。

4.清算任務(wù)調(diào)度

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

清算任務(wù)調(diào)度,整個(gè)架構(gòu)分為:1)任務(wù)拆分,即申請(qǐng)交易文件,按一定的邏輯進(jìn)行數(shù)據(jù)分片;2)任務(wù)執(zhí)行,將執(zhí)行處理過后的數(shù)據(jù),存入流水庫;3)核心服務(wù),包括交易、清算、賬務(wù)、賬戶等。

5.清算的容錯(cuò)和核對(duì)機(jī)制

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

清算的容錯(cuò)和核對(duì)機(jī)制,包含:日初始化、文件導(dǎo)入、清算處理、收益計(jì)算、份額調(diào)整、清算導(dǎo)出、二次清算、收益導(dǎo)出。

每個(gè)環(huán)節(jié)都可以沖正重做。

可以按文件、用戶、備份點(diǎn)進(jìn)行作業(yè)回滾。

優(yōu)點(diǎn)是,任意流程可回滾、精準(zhǔn)逐筆核對(duì),支持按中臺(tái)用戶回滾,縮短了清算時(shí)長。

三、分布式架構(gòu)下如何保障系統(tǒng)的可靠性及穩(wěn)定性

1.灰度發(fā)布機(jī)制

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

灰度發(fā)布機(jī)制,流程包括:beta發(fā)布、分組發(fā)布、灰度引流、全量發(fā)布。

清算灰度,可以靈活的按用戶維度抽取分片,縮短灰度時(shí)間。

2.線上全鏈路壓測

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

線上全鏈路壓測,通過數(shù)據(jù)訪問代理,壓測數(shù)據(jù)進(jìn)入線上影子表,不影響正常業(yè)務(wù)數(shù)據(jù),全鏈路壓測特點(diǎn)有:

①.壓測環(huán)境復(fù)用生產(chǎn),結(jié)果可靠;優(yōu)于線下。

②.壓測數(shù)據(jù)打標(biāo)無法進(jìn)入生產(chǎn)環(huán)境,表級(jí)隔離。

3.OceanBase高可用機(jī)制

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

OceanBase高可用機(jī)制,基于Paxos協(xié)議的典型三副本部署:

1)數(shù)據(jù)強(qiáng)一致性;

2)持續(xù)可用;

3)主備自動(dòng)切換;

4)單機(jī)、機(jī)房、城市級(jí)故障:不停服務(wù),不丟數(shù)據(jù);

OceanBase分布式數(shù)據(jù)庫方案,優(yōu)于商用數(shù)據(jù)庫的主備庫方案,主要體現(xiàn)在:分布式數(shù)據(jù)庫,寫事務(wù)到達(dá)超過半數(shù)庫,少數(shù)庫異常不影響業(yè)務(wù),兩地三中心多活,灰度升級(jí)。

4.OceanBase常用部署方案

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

OceanBase的部署方案有:

同城三機(jī)房,同城多個(gè)核心機(jī)房,相距30公里以內(nèi),延遲約在0.5~2ms之間;

兩地三中心,正常情況下和同城三中心部署的延遲一致,其中一個(gè)城市的一臺(tái)ObServer 宕機(jī)會(huì)增加異地同步延遲。

5.同城雙活容災(zāi)架構(gòu)

阿里專家講中臺(tái):技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐

同城容災(zāi)雙活架構(gòu),平時(shí)以主機(jī)房為主,承載日常交易,少量交易走備機(jī)房,架構(gòu)特點(diǎn)是:

1)同機(jī)房優(yōu)先,避免跨損耗

2)對(duì)應(yīng)用無任何侵入

3)像單機(jī)房一樣開發(fā)部署應(yīng)用

4)容災(zāi)自動(dòng)切換

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI