解析阿裡GTS開源版本fescar分佈式事務

前言碎語

阿裡重磅開源fescar分佈式事務框架、其前身是擁有多項專利的雲分佈式事務產品GTS、很早前阿裡在推廣GTS分佈式事務的時候就隱隱透露過可能會有開源項目的推出,終於在社區千呼萬喚之下fescar發佈瞭。目前是0.1的版本,因為脫胎於商業產品,社區版本要上生產環境可能需要在社區迭代孵化一段時間。代碼可以先拉下來研究一下,後期持續關註fescar的發展。

項目地址:https://github.com/alibaba/fescar

什麼是FESCAR?

一種分佈式事務解決方案,具有高性能和易用性的微服務架構。

微服務中的分佈式事務問題

讓我們想象一下傳統的單片應用程序。其業務由3個模塊構成。他們使用單個本地數據源。

當然,本地交易可以保證數據的一致性。

微服務架構發生瞭變化。提到的3個模塊設計為3個不同數據源之上的3個服務(模式:每個服務的數據庫)。本地事務自然保證每個服務中的數據一致性。

但整個業務邏輯范圍如何呢?

FESCAR怎麼做?

FESCAR隻是上述問題的解決方案。

首先,如何定義分佈式事務?

我們說,分佈式事務是一個全局事務,由一批Branch Transation組成,通常Branch Transation隻是本地事務。

FESACR有3個基本組件:

  • 事務協調器(TC):維護全局和分支事務的狀態,驅動全局提交或回滾。
  • Transaction Manager(TM):定義全局事務的范圍:開始全局事務,提交或回滾全局事務。
  • 資源管理器(RM):管理分支事務的資源,與TC通信以註冊分支事務和報告分支事務的狀態,並驅動分支事務提交或回滾。

FESCAR管理分佈式事務的典型生命周期:

  • TM要求TC開始新的全球交易。TC生成表示全局事務的XID。
  • XID通過微服務的調用鏈傳播。
  • RM將本地事務註冊為XID到TC的相應全局事務的分支。
  • TM要求TC提交或回滾XID的相應全局事務。
  • TC在XID的相應全局事務下驅動所有分支事務以完成分支提交或rollbaking。

有關原理和設計的更多詳細信息,請訪問FESCAR維基頁面。

歷史

  • TXC:淘寶交易構造函數。阿裡巴巴中間件團隊自2014年起啟動該項目,以滿足應用程序架構從單一服務變為微服務所導致的直接交易問題。
  • GTS:全球交易服務。TXC作為Aliyun中間件產品,新名稱GTS自2016年起發佈。
  • FESCAR:我們從2019年開始基於TXC / GTS開源開源項目FESCAR,以便與社區密切合作。

以上就是解析阿裡GTS開源版本fescar分佈式事務的詳細內容,更多關於阿裡GTS開源版本fescar分佈式事務的資料請關註WalkonNet其它相關文章!

推薦閱讀: