分佈式事務框架TX-LCN(二)原理學習

本文的內容均來自於TX-LCN官網,主要是針對TX-LCN整體原理和各種模式的原理及特點,用於學習記錄下!更多詳細信息請大家移步官網,鏈接:TX-LCN官網

Tx-lcn原理

在這裏插入圖片描述

事務控制原理

在這裏插入圖片描述
核心步驟

  1. 創建事務組 是指在事務發起方開始執行業務代碼之前先調用TxManager創建事務組對象,然後拿到事務標示GroupId的過程。
  2. 加入事務組 添加事務組是指參與方在執行完業務方法以後,將該模塊的事務信息通知給TxManager的操作。
  3. 通知事務組 是指在發起方執行完業務代碼以後,將發起方執行結果狀態通知給TxManager,TxManager將根據事務最終狀態和事務組的信息來通知相應的參與模塊提交或回滾事務,並返回結果給事務發起方。

支持的事務模式LCN、TCC、TXA

LCN模式:
一、原理介紹:
LCN模式是通過代理Connection的方式實現對本地事務的操作,然後在由TxManager統一協調控制事務。當本地事務提交回滾或者關閉連接時將會執行假操作,該代理的連接將由LCN連接池管理。

二、模式特點:
該模式對代碼的嵌入性爲低。
該模式僅限於本地存在連接對象且可通過連接對象控制事務的模塊。
該模式下的事務提交與回滾是由本地事務方控制,對於數據一致性上有較高的保障。
該模式缺陷在於代理的連接需要隨事務發起方一共釋放連接,增加了連接佔用的時間。

TCC模式:
一、原理介紹:
TCC事務機制相對於傳統事務機制(X/Open XA Two-Phase-Commit),其特徵在於它不依賴資源管理器(RM)對XA的支持,而是通過對(由業務系統提供的)業務邏輯的調度來實現分佈式事務。主要由三步操作,Try: 嘗試執行業務、 Confirm:確認執行業務、 Cancel: 取消執行業務。

二、模式特點:
該模式對代碼的嵌入性高,要求每個業務需要寫三種步驟的操作。
該模式對有無本地事務控制都可以支持使用面廣。
數據一致性控制幾乎完全由開發者控制,對業務開發難度要求高。

TXC模式:
一、原理介紹:
TXC模式命名來源於淘寶,實現原理是在執行SQL之前,先查詢SQL的影響數據,然後保存執行的SQL快走信息和創建鎖。當需要回滾的時候就採用這些記錄數據回滾數據庫,目前鎖實現依賴redis分佈式鎖控制。

二、模式特點:
該模式同樣對代碼的嵌入性低。
該模式僅限於對支持SQL方式的模塊支持。
該模式由於每次執行SQL之前需要先查詢影響數據,因此相比LCN模式消耗資源與時間要多。
該模式不會佔用數據庫的連接資源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章