功能特性
分布式事務(Distributed Transaction-eXtended,簡稱 DTX)是螞蟻集團自主研發(fā)的金融級分布式事務中間件,支持跨數(shù)據(jù)庫、跨服務以及混合的方式處理分布式應用,具備多種接入模式和金融級配套功能,本文將主要介紹分布式事務的功能特性。
核心功能
分布式事務擁有三大核心功能:跨數(shù)據(jù)庫、跨服務以及混合分布式事務。
跨數(shù)據(jù)庫分布式事務
當業(yè)務規(guī)模增大,單庫單表無法滿足業(yè)務需求時,自然就會出現(xiàn)分庫分表的情況。但是,單機事務又不能保證分庫后的事務屬性,分布式事務幾乎無法避免。分布式事務可以讓應用輕松具備跨庫分布式事務處理能力,像使用單機數(shù)據(jù)庫事務一樣,透明地使用分布式事務。
跨服務的分布式事務
在基于 SOA(Service-Oriented Architecture,面向服務架構)的分布式應用環(huán)境下,系統(tǒng)按照功能解耦,拆分成不同的微服務,一項業(yè)務往往會涉及多個服務之間的調(diào)用。因此,為了保障業(yè)務完整,需要保證各調(diào)用服務間的數(shù)據(jù)一致性。分布式事務同樣支持跨服務的分布式事務,并且可以很方便的與 SOFABoot、Spring Cloud、Dubbo 等框架打通,實現(xiàn)業(yè)務鏈路級別的分布式事務。
混合分布式事務
在一個大規(guī)模的分布式應用環(huán)境下,除了常見的微服務、數(shù)據(jù)庫資源之外,還會涉及到消息隊列、緩存等系統(tǒng)資源的使用。同時,依然需要保證這些資源間訪問的數(shù)據(jù)的一致性。分布式事務支持在同一個分布式事務中引入數(shù)據(jù)庫、服務、消息隊列等不同類型的資源,并且支持混合接入模式。
接入模式
SOFAStack 的分布式事務產(chǎn)品隨著業(yè)務的多樣性發(fā)展而演變沉淀了多種接入模式,針對科技金融下多種業(yè)務場景靈活適配。
TCC 模式
TCC(Try-Confirm-Cancel)是一種高性能的分布式事務接入方案,該模式提供了更多的靈活性,幾乎可滿足任何您能想到的事務場景。TCC 模式提供自定義補償型事務、自定義資源預留型事務、消息事務等場景,用戶可以介入兩階段提交的過程,以達到特殊場景下的自定義優(yōu)化及特殊功能的實現(xiàn)。
FMT 模式
為了解決 TCC 模式的易用性問題,分布式事務推出了框架管理事務模式(Framework-managed transactions,簡稱 FMT)。FMT 是一種無侵入的分布式事務解決方案,該模式解決了分布式事務的易用性問題,最大的特點是易于使用、快速接入以及對業(yè)務代碼無侵入。
SAGA 模式
基于 Hector & Kenneth 發(fā)表論? Sagas(1987)理論的長事務解決方案,在 Saga 模式中,業(yè)務流程中每個參與者都提交本地事務,當出現(xiàn)某一個參與者失敗則補償前面已經(jīng)成功的參與者。該模式適用于業(yè)務流程長、業(yè)務流程多、參與者包含其它公司或老系統(tǒng)服務等場景。優(yōu)勢是一階段提交本地事務無鎖,事件驅動架構,參與者可異步執(zhí)行,高并發(fā)高吞吐;補償服務易于實現(xiàn)或老系統(tǒng)本身就有補償(沖正)服務;支持服務編排、有可視化的設計器和執(zhí)行軌跡監(jiān)控。
XA 模式
高性能的標準 XA 事務方案,基于標準 XA 實現(xiàn),消除與 JEE 開發(fā)相關的日益復雜的問題,幫助傳統(tǒng)企業(yè)的業(yè)務無縫上云以及服務化拆分。并可以與螞蟻集團自研數(shù)據(jù)庫 OceanBase 共同打造實時數(shù)據(jù)一致性的整體解決方案。
金融級配套功能
沉淀螞蟻集團歷練多年的精粹,全方位的金融企業(yè)級能力為科技金融保駕護航。
隔離性保障
多層次全鏈路的縱深防御能力,金融級數(shù)據(jù)隔離能力,高度保障數(shù)據(jù)安全。
性能推進模式(Performance Bursting)
在日常高性能運轉的基礎上,通過性能推進模式來提升處理能力,在不改變底層基礎設施的前提下從容應對峰值事務交易。
云端恢復機制
提供完備的云端服務功能,幫助業(yè)務應用在出現(xiàn)異常事務時進行自動恢復,避免業(yè)務損失。