<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          螞蟻金服技術(shù)中臺(tái)架構(gòu)實(shí)踐

          共 2524字,需瀏覽 6分鐘

           ·

          2020-12-22 12:25

          點(diǎn)擊“開(kāi)發(fā)者技術(shù)前線”,選擇“星標(biāo)?”

          讓一部分開(kāi)發(fā)者看到未來(lái)

          來(lái)源| 阿里云峰會(huì)
          文|?技術(shù)領(lǐng)導(dǎo)力社區(qū)


          本文整理自,阿里高級(jí)技術(shù)專(zhuān)家-許文奇在2019阿里云峰會(huì)上的分享《技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐》。


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


          01

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

          (點(diǎn)擊圖片放大)

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

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

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



          02

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

          (點(diǎn)擊圖片放大)

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

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



          03

          模塊化開(kāi)發(fā)

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



          04

          微服務(wù)架構(gòu)的負(fù)載均衡優(yō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)、隔離等。



          05

          數(shù)據(jù)訪問(wèn)瓶頸解決方案--數(shù)據(jù)庫(kù)垂直切分

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



          06

          數(shù)據(jù)訪問(wèn)瓶頸解決方案--數(shù)據(jù)庫(kù)水平切分

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

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



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


          07

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

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



          08

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

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

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

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

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


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



          09

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

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

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

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

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



          10

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

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



          11

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

          清算的容錯(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í)長(zhǎng)。



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


          12

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

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

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



          13

          線上全鏈路壓測(cè)

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

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

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




          14

          OceanBase高可用機(jī)制


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

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

          2)持續(xù)可用;

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

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


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



          15

          OceanBase常用部署方案

          OceanBase的部署方案有:

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

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



          16

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

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

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

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

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

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


          以上就是,技術(shù)中臺(tái)-分布式架構(gòu)在螞蟻金服的實(shí)踐,如果覺(jué)得本文對(duì)你有幫助,請(qǐng)點(diǎn)“在看”、分享朋友圈,你的支持是我們堅(jiān)持寫(xiě)下去的理由!




          END






          在看點(diǎn)一下


            瀏覽 62
            點(diǎn)贊
            評(píng)論
            收藏
            分享

            手機(jī)掃一掃分享

            分享
            舉報(bào)
            評(píng)論
            圖片
            表情
            推薦
            點(diǎn)贊
            評(píng)論
            收藏
            分享

            手機(jī)掃一掃分享

            分享
            舉報(bào)
            <kbd id="afajh"><form id="afajh"></form></kbd>
            <strong id="afajh"><dl id="afajh"></dl></strong>
              <del id="afajh"><form id="afajh"></form></del>
                  1. <th id="afajh"><progress id="afajh"></progress></th>
                    <b id="afajh"><abbr id="afajh"></abbr></b>
                    <th id="afajh"><progress id="afajh"></progress></th>
                    超碰人人爱在线观看 | 国产高清色情 | 黄色小电影在线免费观看 | 女公安一级毛片陆放 | gogo人体视频 |