分佈式事務框架 --- LCN

LCN 具體的使用的方法 查看官網,官網我以爲已經說的很明確了   http://www.txlcn.org/zh-cn/docs/preface.htmlhtml

如下的所有來自官網,我只是CVredis

事務模式

LCN5.0.2有3種模式,分別是LCN模式,TCC模式,TXC模式;數據庫

LCN事務模式

1、原理介紹:

 LCN模式是經過代理Connection的方式實現對本地事務的操做,而後在由TxManager統一協調控制事務。當本地事務提交回滾或者關閉鏈接時將會執行假操做,該代理的鏈接將由LCN鏈接池管理。框架

2、模式特色:

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

TCC事務模式

1、原理介紹:

    TCC事務機制相對於傳統事務機制(X/Open XA Two-Phase-Commit),其特徵在於它不依賴資源管理器(RM)對XA的支持,而是經過對(由業務系統提供的)業務邏輯的調度來實現分佈式事務。分佈式

   主要由三步操做,Try: 嘗試執行業務、 Confirm:確認執行業務、 Cancel: 取消執行業務。spa

2、模式特色:

  • 該模式對代碼的嵌入性高,要求每一個業務須要寫三種步驟的操做。
  • 該模式對有無本地事務控制均可以支持使用面廣。
  • 數據一致性控制幾乎徹底由開發者控制,對業務開發難度要求高。

TXC事務模式

1、原理介紹:

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

2、模式特色:

  • 該模式一樣對代碼的嵌入性低。
  • 該模式僅限於對支持SQL方式的模塊支持。
  • 該模式因爲每次執行SQL以前須要先查詢影響數據,所以相比LCN模式消耗資源與時間要多。
  • 該模式不會佔用數據庫的鏈接資源。

事務控制原理

   TX-LCN由兩大模塊組成, TxClient、TxManager,TxClient做爲模塊的依賴框架,提供TX-LCN的標準支持,TxManager做爲分佈式事務的控制放。代理

   事務發起方或者參與反都由TxClient端來控制。htm

原理圖:對象

核心步驟

    • 建立事務組
      是指在事務發起方開始執行業務代碼以前先調用TxManager建立事務組對象,而後拿到事務標示GroupId的過程。

    • 加入事務組
      添加事務組是指參與方在執行完業務方法之後,將該模塊的事務信息通知給TxManager的操做。

    • 通知事務組是指在發起方執行完業務代碼之後,將發起方執行結果狀態通知給TxManager,TxManager將根據事務最終狀態和事務組的信息來通知相應的參與模塊提交或回滾事務,並返回結果給事務發起方。

相關文章
相關標籤/搜索