【分佈式事務】三、分佈式事務框架TC-LCN

本分佈式事務系列主要講分佈式事務從

理論-> 解決方案 -> 使用框架 -> 實現及原理 -> 案例實戰 -> 事務回滾(全局異常統一處理)->分佈式事務消息

該篇着重於講述分佈式事務框架之一(LCN框架)原理,特性,及其實現。

 

1.爲什麼選擇LCN框架

2.LCN框架介紹

3.LCN框架原理

一、爲什麼選擇LCN框架

1.實用性

LCN有比較全面的文檔,國內中文官網。(國產框架)包括原理介紹、使用說明、視頻講解,演示demo等,而且LCN對於業務代碼的入侵性極小,開發者使用起來也比較方便。

技術選型,這其實是一個作爲架構師,也不說架構師,優秀程序猿們應該仔細琢磨的一個問題,於我最重視實用性,文檔齊全更利於維護,介紹說明詳細利於團隊學習進步,當然這裏的分佈式系列文檔,是我在團隊進行培訓時的文檔,若有什麼不足,歡迎指出,互相學習。

 

2.侵入性

代碼無侵入性,開箱即用,一個註解解決分佈式事務。

一個註解,學習成本極小,甚至業務開發無需關心底層實現,只需摸清楚一張原理流程圖即可。

 

3.優缺點

優點:性能較爲優秀、可靠性強、侵入性小、使用方便。同時支持國產

缺點:LCN需要單獨部署tx-manager服務。需要維護其穩定性。

且是lock資源,集中更新時性能衰退會大於TCC框架。

 

二、LCN框架介紹

官網地址:點我

重點定位:LCN並不生產事務,LCN只是本地事務的協調工。

等等,這話有點熟悉?農夫三拳加點鹽?

TX-LCN定位於一款事務協調性框架,框架其本身並不操作事務,而是基於對事務的協調從而達到事務一致性的效果。

LCN至TX-LCN的背景:

    5.0版本以後由於框架兼容了LCN、TCC、TXC三種事務模式,爲了避免區分LCN模式,特此將LCN分佈式事務改名爲TX-LCN分佈式事務框架。

LCN對應的示意:

鎖定事務單元(lock)

確認事務模塊狀態(confirm)

通知事務(notify)

 

三、LCN框架原理

控制原理:點我

流程解讀:

這裏以下單(訂單服務)送積分(積分服務)扣庫存(庫存服務)案例來進行講述

1.用戶訪問下單接口,訂單服務成爲事務發起方。隨即通知TxManager創建一組事務組。(唯一的事務ID)

2.訂單服務執行對應的業務代碼,生成一條訂單...

3.執行完業務請求 庫存模塊,傳遞唯一事務ID。

4.庫存服務拿到唯一事務ID,執行業務,之後通過ID加入事務組,並返回操作結果給訂單服務。

備註:這裏失敗則訂單服務會通知TxManager進行事務回滾,告知執行失敗

5.訂單服務收到庫存模塊響應,隨即調用積分服務送積分。並傳遞事務唯一ID。

6.積分服務執行業務,加入事務組,返回對應執行狀態

7.訂單服務執行最後邏輯,如MQ等,並通知事務組執行完畢

8.事務組通知事務參與者,積分服務與庫存服務,最後響應事務發起方訂單服務

9.事務全部提交,流程結束。

圖示:

以上重點步驟:

創建事務組 -> 加入事務組 -> 通知事務組

 

總結:LCN主要是通過事務組這一形式的通知,並且通過事務唯一ID,進行服務之間的通訊交互。任何服務的執行失敗都會導致最終結果失敗。要麼全成功,否則一個失敗則都失敗。

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