transaction-core 分布式事務(wù)框架

transaction-core 分布式事務(wù)框架

工程地址:transaction-core

  • 本框架適用于spring boot+RestTemplate

術(shù)語表

GTM

GlobalTransactionManager(全局事務(wù)管理器)

Master

主人,全局事務(wù)發(fā)起者,負(fù)責(zé)發(fā)起全局事務(wù),管理直接下屬slave,進行事務(wù)決策。

Slave

隨從,全局事務(wù)跟從者,響應(yīng)上級slave或者master的決策。傳達(dá)決策給直接下屬slave。

框架介紹

本框架基于TCC模式,通過GTM進行事務(wù)管理。事務(wù)發(fā)起者作為master發(fā)起全局事務(wù)。事務(wù)中的遠(yuǎn)程調(diào)用服務(wù)端作為salve對事務(wù)做出響應(yīng)。存在多級調(diào)用的情況下,TMG只管理直接下級,形成逐級管理的結(jié)構(gòu),如下圖所示:

組織圖

以上圖存在兩層調(diào)用為例進行說明,master將決策下達(dá)給一級slave,一級slave收到?jīng)Q策后執(zhí)行決策,并將決策傳給下屬的的二級slave。二級slave執(zhí)行決策并反饋響應(yīng)給一級slave,一級slave將響應(yīng)反饋給master,則整個決策執(zhí)行完畢。

兩階段提交模型

  • 一階段prepare行為:

    • master:創(chuàng)建全局事務(wù),全局事務(wù)管理器開啟本地事務(wù)。如果存在遠(yuǎn)程調(diào)用,則全局事務(wù)管理器創(chuàng)建分支事務(wù),記錄遠(yuǎn)程調(diào)用地址。將分支事務(wù)id添加到請求header中發(fā)給slave。

    • slave:創(chuàng)建分支事務(wù),全局事務(wù)管理器開啟本地事務(wù)。如果存在遠(yuǎn)程調(diào)用,則全局事務(wù)管理器創(chuàng)建分支事務(wù),記錄遠(yuǎn)程調(diào)用地址。將分支事務(wù)id添加到請求header中發(fā)給slave。

  • 二階段commit 行為:

    • master:本地事務(wù)提交,調(diào)用slave提交接口。

    • slave:本地事務(wù)提交,調(diào)用下級slave提交接口。

  • 二階段rollback行為:

    • master:本地事務(wù)回滾,調(diào)用slave回滾接口。

    • slave:本地事務(wù)回滾,調(diào)用下級slave回滾接口。

demo

global-transaction-demo

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容