螞蟻金服的「技術中臺」:億級分布式系統架構實踐

2020-11-08 CRM研究社

一、分布式架構優勢和理念


01

傳統單體架構特點

(圖片來源:阿里雲峰會)

通常一個初創型項目,都是從單體架構開始的。

優點就是快,易於開發、測試、部署,一個WAR包發上生產就完事了。

缺點也很明顯,因為所有模塊都在一個程序包裡,導致編譯慢、啟動慢、代碼衝突,每次合併代碼的時候都是惡夢,發布成功率?完全靠運氣。


02

微服務架構 vs 單體架構

(圖片來源:阿里雲峰會)

複雜度較小時採用單體應用生產效率更高,複雜度到了一定規模時單體應用的生產效率開始急劇下降,這時對其進行服務化拆分才是合算的。

微服務架構之所以得到廣泛認可,源於對業務多變性的不可預測,微服架構能夠不斷的自演化 ,進而快速適應業務變化。


03

模塊化開發

(圖片來源:阿里雲峰會)

微服務架構,從業務頂層設計開始,按照業務線進行模塊拆分,從表現層、邏輯層、數據層進行獨立的剝離單體應用。很多企業都經歷過單體應用到服務化應用的拆分過程,這裡要注意業務的連續性、數據的完整性問題。


04

微服務架構的負載均衡優勢

(圖片來源:阿里雲峰會)

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

在微服務架構中,由網關作為接入層,提供輕量級的負載均衡、協議轉換、鑑權等服務,微服務通常有服務治理框架,如DUBBO等,提供服務治理、服務註冊、服務發現、隔離等。


05

數據訪問瓶頸解決方案--資料庫垂直切分

(圖片來源:阿里雲峰會)

分布式架構是如何解決數據訪問瓶頸的呢?首先是資料庫的垂直切分,比如,按用戶、交易、帳務拆分到獨立的資料庫當中,緩解了數據存儲和訪問的壓力,當然也可以做主備庫,進行讀寫分離的。



06

數據訪問瓶頸解決方案--資料庫水平切分

(圖片來源:阿里雲峰會)

其次,進行資料庫的水平切分,比如交易資料庫和數據表的數據量太大,可以按交易時間進行分表、分庫,拆分表的數量計算方法見上圖。

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


二、分布式架構實踐舉例--分布式TA系統


07

傳統TA系統架構

(圖片來源:阿里雲峰會)

傳統TA系統架構,清算串行效率低,無法通過增加機器線性擴展性能,一般使用大事務,出現問題全部回滾。


08

分布式TA系統架構

(圖片來源:阿里雲峰會)

分布式TA系統架構,結構更合理,也更複雜。分成了:接入層、業務服務層、SOFAStack層、LAAS、運維工具鏈、治理控制。

接入層:包括協議轉換、訪問控制、文件傳輸、運維工作檯。

業務服務層:即業務核心邏輯服務,如:帳戶、交易、帳單、清算等。

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


分布式TA系統的需求攻克的技術難題。分布式清算任務如何高效實現?分布式下,加大應用處理出錯可能性,那清算任務如何確保正確性?下面會談談如何解決。



09

分布式任務調度平臺

(圖片來源:阿里雲峰會)

分布式任務調度平臺,支持:

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

執行中可對任務進行暫停/續跑,強制取消。

任務失敗重試機制,保障整體計算任務成功。


10

清算任務調度

(圖片來源:阿里雲峰會)

清算任務調度,整個架構分為:1)任務拆分,即申請交易文件,按一定的邏輯進行數據分片;2)任務執行,將執行處理過後的數據,存入流水庫;3)核心服務,包括交易、清算、帳務、帳戶等。


11

清算的容錯和核對機制

(圖片來源:阿里雲峰會)

清算的容錯和核對機制,包含:日初始化、文件導入、清算處理、收益計算、份額調整、清算導出、二次清算、收益導出。

每個環節都可以衝正重做。

可以按文件、用戶、備份點進行作業回滾。

優點是,任意流程可回滾、精準逐筆核對,支持按中臺用戶回滾,縮短了清算時長。


三、分布式架構下如何保障系統的可靠性及穩定性


02

灰度發布機制

(圖片來源:阿里雲峰會)

灰度發布機制,流程包括:beta發布、分組發布、灰度引流、全量發布。

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


13

線上全鏈路壓測

(圖片來源:阿里雲峰會)

線上全鏈路壓測,通過數據訪問代理,壓測數據進入線上影子表,不影響正常業務數據,全鏈路壓測特點有:

1、壓測環境復用生產,結果可靠;優於線下。

2、壓測數據打標無法進入生產環境,表級隔離。



14

OceanBase高可用機制


(圖片來源:阿里雲峰會)

OceanBase高可用機制,基於Paxos協議的典型三副本部署:

1)數據強一致性;

2)持續可用;

3)主備自動切換;

4)單機、機房、城市級故障:不停服務,不丟數據;


OceanBase分布式資料庫方案,優於商用資料庫的主備庫方案,主要體現在:分布式資料庫,寫事務到達超過半數庫,少數庫異常不影響業務,兩地三中心多活,灰度升級。


15

OceanBase常用部署方案

(圖片來源:阿里雲峰會)

OceanBase的部署方案有:

同城三機房,同城多個核心機房,相距30公裡以內,延遲約在0.5~2ms之間;

兩地三中心,正常情況下和同城三中心部署的延遲一致,其中一個城市的一臺ObServer 宕機會增加異地同步延遲。


16

同城雙活容災架構

(圖片來源:阿里雲峰會)

同城容災雙活架構,平時以主機房為主,承載日常交易,少量交易走備機房,架構特點是:

1)同機房優先,避免跨損耗

2)對應用無任何侵入

3)像單機房一樣開發部署應用

4)容災自動切換


以上就是,技術中臺-分布式架構在螞蟻金服的實踐,如果覺得本文對你有幫助,請轉發朋友圈,做一個分享價值的人。

作者:許文奇 阿里高級技術專家

相關焦點

  • 螞蟻金服的「技術中臺」:億級分布式系統架構實踐
    二、分布式架構實踐舉例--分布式TA系統07 傳統TA系統架構(圖片來源:阿里雲峰會)傳統TA系統架構,清算串行效率低,無法通過增加機器線性擴展性能,一般使用大事務,出現問題全部回滾。08 分布式TA系統架構(圖片來源:阿里雲峰會)分布式TA系統架構,結構更合理,也更複雜。分成了:接入層、業務服務層、SOFAStack層、LAAS、運維工具鏈、治理控制。接入層:包括協議轉換、訪問控制、文件傳輸、運維工作檯。業務服務層:即業務核心邏輯服務,如:帳戶、交易、帳單、清算等。
  • 分布式事務:螞蟻金服核心金融場景下的演進
    尹博學,螞蟻金服資深技術專家,目前負責數據中間件技術方向。此前在百度負責資料庫內核及集群技術方向。在分布式事務、資料庫高性能/高可靠架構、資料庫內核等領域有較為深入的研究和豐富的工程實踐。這是金融級分布式系統的最大挑戰之一。  在螞蟻金服核心系統提出微服務化時,曾遇到了非常大的技術難題。首先是在服務拆分以後,面臨跨服務的一致性問題;其次,支付寶當時的峰值交易量已經非常高了,在解決一致性問題的同時,還需要兼顧性能。  然而,在當時最常見的還是基於XA協議的分布式事務解決方案,雖然該方案能夠實現跨服務一致性,但是在熱點數據的處理上,卻不能滿足性能需求。
  • 資料庫從集中式架構到分布式架構發生了哪些改變?
    近兩年國內資料庫市場格外熱鬧,很多廠商都推出了自研的國產資料庫,而關係型資料庫是各廠商的主攻方向,螞蟻金服的OceanBase就是其中的代表。不過相比於傳統資料庫,為了應對業務複雜性和快速迭代所帶來的挑戰,關係型資料庫也在一直演變,在架構層面從集中式逐步走向分布式。
  • 支付寶金融級IT架構及分布式架構的應用實踐
    微服務、容器、無伺服器架構、服務網格等新技術的出現,在技術社區中激起了一浪又一浪的創新熱潮。然而由於金融行業對性能和安全的嚴苛要求,雲原生技術在企業實際場景中的實施落地,特別是在金融場景的實施落地,仍然面臨諸多挑戰。本文整理自2020阿里雲線上峰會螞蟻集團資深技術專家尹博學的主題演講,為大家分享螞蟻關於金融級IT架構及分布式架構的思考和應用實踐。
  • 螞蟻金服啟動分布式中間件開源計劃:構建雲原生架構
    SOFA 中間件是螞蟻金服自主研發的金融級分布式中間件,包含了構建金融級雲原生架構所需的各個組件,包括微服務研發框架,RPC 框架,服務註冊中心,分布式定時任務,限流/熔斷框架,動態配置推送,分布式鏈路追蹤,Metrics監控度量,分布式高可用消息隊列,分布式事務框架,分布式資料庫代理層等組件,是一套分布式架構的完整的解決方案,也是在金融場景裡錘鍊出來的最佳實踐。
  • 螞蟻金服OceanBase資料庫的第十年:市場先行,基因長存
    奮戰在「雙11大促」背後的螞蟻金服OceanBase團隊或許對這句話頗有感觸。與十一年前相比,雙11的許多東西都變了,比如金額---2684億,差不多是十一年前0.5億的5000倍;比如流量---當晚的交易峰值達到54.4 萬筆/秒,是2009年第一次雙十一的1360倍。而在這個成績的背後,不得不提到螞蟻金服技術團隊OceanBase。
  • 億級高並發IM架構的開發實踐——Netty
    如何支撐億級流量的高並發IM架構的理論基礎億級流量的系統架構的開發實踐支撐億級流量的高並發IM通信的幾大集群中,最為核心的是Netty集群、ZooKeeper集群、Redis集群, 它們是主要實現億級流量通信功能不可缺少的集群。
  • OceanBase遷移服務:向分布式架構升級的直接路徑
    2019年1月4日,OceanBase遷移服務解決方案在ATEC城市峰會中正式發布。螞蟻金服資深技術專家師文匯和技術專家韓谷悅共同分享了OceanBase遷移服務的重要特性和業務實踐。螞蟻資料庫架構的三代升級史在過去的十多年時間裡,螞蟻在整個基礎資料庫架構上一共經歷了三代升級。
  • 螞蟻金服組織架構再升級:新任CEO胡曉明立足內需,董事長井賢棟著眼...
    同時,即日起,螞蟻金服總裁胡曉明(「孫權」)接任螞蟻金服CEO,向井賢棟匯報,井賢棟繼續擔任螞蟻金服集團董事長。井賢棟在12月19日致螞蟻金服全員信中宣布了上述人事架構的變化。「儘管支付寶全球用戶數已超12億,但全球化市場的未來仍超乎想像,作為螞蟻金服董事長,井賢棟將親自擔任全球化的『一號位』,在全球化上投入更多精力。」
  • 阿里店小蜜:螞蟻金服組織架構重大升級 胡曉明出任總裁
    這是今天中國網際網路圈最大的新聞:阿里雲原總裁胡曉明(花名孫權)出任螞蟻金服總裁,向螞蟻金服董事長兼CEO井賢棟匯報。井賢棟在郵件中熱烈歡迎胡曉明回歸,並稱他的回歸是螞蟻金服組織架構的重大升級。  這個消息並不令人太意外,本周一阿里宣布架構調整時,胡曉明的去向就引發了猜測,而螞蟻金服被認為是胡曉明最有可能的下一站。
  • 基於Go的馬蜂窩旅遊網分布式IM系統技術實踐
    本文我們將結合馬蜂窩旅遊電商IM系統的發展歷程,單獨介紹基於Go重構分布式IM系統過程中的實踐和總結(本文相當於《從遊擊隊到正規軍(一):馬蜂窩旅遊網的IM系統架構演進之路》一文的進階篇),希望可以給有相似問題的朋友一些借鑑。
  • 近十年阿里高級技術架構師的實踐總結,太全面了,已跪
    一套完整的、體系化的大型網站性能優化方法論一個端到端、完整的性能優化解決方案可直接用於指導PV十億級網站的性能優化可幫助技術團隊建立全局性能分析、監控和調優方案可實現用較小的技術成本換得更好的系統性能對電商網站架構規劃、社交網站性能調優、移動網際網路和物聯網通信架構的性能優化都有實際的參考價值
  • 胡曉明接任螞蟻金服CEO,阿里組織架構再調整
    來源:一財網阿里巴巴再次進行組織架構調整。12月19日上午,阿里巴巴集團董事局主席兼CEO張勇、螞蟻金服集團董事長井賢棟分別發出全員信,即日起,螞蟻金服總裁胡曉明接任螞蟻金服CEO,向井賢棟匯報,井賢棟繼續擔任螞蟻金服董事長。井賢棟將繼續管理螞蟻國際事業群、智能科技事業群、HR、財務和戰略投資板塊。
  • 浙商證券:目前公司與恒生電子、阿里雲、螞蟻金服三方合作
    公司回答表示,公司積極探索科技與金融融合的發展方向,目前公司與恒生電子、阿里雲、螞蟻金服三方合作,共同打造「網際網路用戶中心」。該項目採用先進的分布式架構,以阿里雲平臺為基礎,結合螞蟻金服的Oceanbase資料庫和恒生電子的新一代JRES分布式框架中間件,以及在此全新架構基礎上建設的網際網路用戶中心業務系統。
  • 超越Google Spanner,阿里巴巴/螞蟻金服OceanBase關係資料庫正式商用
    能不能採取分布式技術,將資料庫系統運行到價格更便宜的普通x86伺服器上?Google最早開始改變這一現狀,推出分布式資料庫Google Spanner,並在2011年應用於其廣告計費系統AdWords。
  • 京東大牛嘔心瀝血十三年「史詩級著作」億級流量架構核心技術
    本書內容涵蓋容器集群、資料庫、分布式存儲、服務框架、消息隊列、異地多活、機器學習等一系列經典技術話題, 深入淺出地向讀者展示了京東基礎架構的搭建、 演進、變革及發展的完整畫像,系統地闡述了京東重要階段的技術進步歷程及裡程碑級別的技術突破,堪稱是一部「從入門到精通」的基礎架構經典教材。
  • IT系統穩定性創新者:分布式軟體,「笨馬」先跑
    隨著網際網路的快速興起,當時的「Unix+小型機」架構遭遇了數據爆增的衝擊。特別是在線交易、商業分析和資料庫等關鍵業務系統,在2010年前後進入了TB甚至PB級,導致傳統IT架構不堪重負,對IT系統的穩定性和可擴展性等提出了新要求。
  • 支付寶資深專家尹博學:新一代金融核心之全分布式單元化技術架構
    微服務、容器、無伺服器架構、服務網格等新技術的出現,在技術社區中激起了一浪又一浪的創新熱潮。然而由於金融行業對性能和安全的嚴苛要求,雲原生技術在企業實際場景中的實施落地,特別是在金融場景的實施落地,仍然面臨諸多挑戰。本文整理自2020阿里雲線上峰會螞蟻集團資深技術專家尹博學的主題演講,為大家分享螞蟻關於金融級IT架構及分布式架構的思考和應用實踐。
  • 螞蟻金服深度研究報告:見證螞蟻成為大象之路
    螞蟻金服出世之時便確立了 以建設網際網路金融服務生態系統的目標,並逐步形成了五大業務板塊:支付、理財、 融資、綜合金融與金融基礎設施。具體來看,螞蟻的內核財富管理和競爭力則是以 技術為主導的 TechFin 體系,主要體現在開放技術平臺上,並基於雲計算、大數據、人工智慧、區塊鏈、物聯網技術,建立數位化的信用體系、風控體系和營銷運營體 系。
  • 數據中臺公開課,可以復用的中臺架構建設經驗與實踐
    基於此,博文視點學院特邀資深架構師、《大數據平臺架構與原型實現》作者耿立超老師,相約7月23日(周四)19:00,為你詳細講解數據中臺的技術架構。詳細講解數據中臺的技術架構介紹大數據平臺的必要環節與模塊運行並演示書中使用的開源大數據原型項目講師介紹耿立超,架構師,14年IT系統開發和架構經驗,對大數據、企業級應用架構、SaaS、分布式存儲和領域驅動設計有豐富的實踐經驗,熱衷函數式編程