解析阿裡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其它相關文章!
推薦閱讀:
- 聊聊SpringCloud和SpringCloudAlibaba的區別
- 修改並編譯golang源碼的操作步驟
- 一文瞭解Seata的實現原理
- VScode中集成Git命令詳解
- Spring Cloud + Nacos + Seata整合過程(分佈式事務解決方案)