1. 程式人生 > >關於LCN分散式事務框架

關於LCN分散式事務框架

基於LCN框架解決分散式事務

 

LCN官網 https://www.txlcn.org/

"LCN並不生產事務,LCN只是本地事務的搬運工"

相容 dubbo、springcloud、motan 框架,支援各種關係型資料庫

LCN框架底層實現原理

詳細參考: https://github.com/codingapi/tx-lcn/wiki/LCN%E5%8E%9F%E7%90%86

 

 

1.LCN客戶端(發起方和參與方都必須要註冊到事務協調者中) 建立一個長連線。
2.訂單服務(發起方)呼叫庫存服務介面(參與方)之前會向TxManager事務協調者建立一個事務的分組id。
3.訂單服務(發起方)呼叫庫存服務介面(參與方)的時候,會在請求頭中存放該事務的分組id,給庫存服務。
4.如果庫存服務獲取到請求頭中有對應的事務分組id,庫存服務業務邏輯程式碼執行完畢的,會採用假關閉,不會提交該事務。

5.參與方在什麼時候提交事務。
肯定在發起方 執行成功下。
訂單服務(發起方)呼叫庫存服務介面(參與方)之後,如果訂單服務(發起方)執行沒有問題的下,
訂單服務(發起方)使用對應的事務分組id,通知給TxManager事務協調者,讓後TxManager事務協調者在根據該事務分組id,通知給所有的參與方提交事務。

 


PS:長連線 好處減少寬頻傳輸 弊端比較佔記憶體。