分佈式事務:Raincat、TX-LCN、Seata 介紹

分佈式事務:Raincat、TX-LCN、Seata 介紹

  • Raincat , 幫助文檔 , github , 1千多星

    • 遺憾的是不支持 2.7 (Support for the dubbo framework Less than 2.7 version)
  • TX-LCN , 官方文檔github , 3千多星 , 5.0以後由於框架兼容了LCN(2pc)、TCC、TXC 三種事務模式,爲了區分LCN模式,特此將LCN分佈式事務改名爲TX-LCN分佈式事務框架。

    • TX-LCN定位於一款事務協調性框架,框架其本身並不生產事務,而是本地事務的協調者,從而達到事務一致性的效果。
    • TX-LCN 主要有兩個模塊,Tx-Client(TC) ,Tx-Manager™.
      • TM (Tx-Manager):是獨立的服務,是分佈式事務的控制方,協調分佈式事務的提交,回滾
      • TC(Tx-Client):由業務系統集成,事務發起方、參與方都由TxClient端來控制
    • 事務控制原理
  • Seata , 官網 , github , 1萬多星

    • Seata 是一款開源的分佈式事務解決方案,致力於在微服務架構下提供高性能和簡單易用的分佈式事務服務。Seata 將爲用戶提供了 AT、TCC、SAGA 和 XA 事務模式

    • 在 Seata 開源之前,Seata 對應的內部版本在阿里經濟體內部一直扮演着分佈式一致性中間件的角色,幫助經濟體平穩的度過歷年的雙11,對各BU業務進行了有力的支撐。商業化產品GTS 先後在阿里雲、金融雲進行售賣

    • Seata分TC、TM、RM三個角色 , 是不是和XA模型很像

      • TC(事務協調者,Transaction Coordinator):是 Server端,要單獨部署,維護全局和分支事務的狀態,驅動全局事務提交或回滾。
      • TM(Transaction Manager)和RM(Resource Manager) :是Client端,由業務系統集成。TM:定義全局事務,RM 管理分支事務處理的資源。

    • Seata管理的分佈式事務的典型生命週期

      1. TM要求TC 開始一項新的全局事務,TC生成代表全局事務的XID,並返回給TM
      2. TM 拿到XID,開始執行本身代碼和調用多個 RM,XID通過微服務的調用鏈傳播給RM
      3. RM 處理過程:執行數據庫CRUD操作、將RM管理的數據(如:xid)註冊到TC 的全局事務分支表中、保存一階段回滾日誌到undo_log表中、執行本地事務提交、上報RM事務執行狀態
      4. 根據RM的返回結果,若異常則TM通知TC回滾相應的XID全局事務,若正常則TM通知TC二階段提交
      5. TC驅動XID的相應全局事務下的所有分支事務以完成分支提交或回滾。

    • AT 模式: 兩階段提交協議的演變,沒有一直鎖表

      • 一階段:業務數據和回滾日誌記錄在同一個本地事務中提交,釋放本地鎖和連接資源
      • 二階段:提交異步化,非常快速地完成。或回滾通過一階段的回滾日誌進行反向補償
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章