解析阿里GTS開源版本fescar分布式事務(wù)
前言碎語
阿里重磅開源fescar分布式事務(wù)框架、其前身是擁有多項專利的云分布式事務(wù)產(chǎn)品GTS、很早前阿里在推廣GTS分布式事務(wù)的時候就隱隱透露過可能會有開源項目的推出,終于在社區(qū)千呼萬喚之下fescar發(fā)布了。目前是0.1的版本,因為脫胎于商業(yè)產(chǎn)品,社區(qū)版本要上生產(chǎn)環(huán)境可能需要在社區(qū)迭代孵化一段時間。代碼可以先拉下來研究一下,后期持續(xù)關(guān)注fescar的發(fā)展。
項目地址:https://github.com/alibaba/fescar
什么是FESCAR?
一種分布式事務(wù)解決方案,具有高性能和易用性的微服務(wù)架構(gòu)。
微服務(wù)中的分布式事務(wù)問題
讓我們想象一下傳統(tǒng)的單片應(yīng)用程序。其業(yè)務(wù)由3個模塊構(gòu)成。他們使用單個本地數(shù)據(jù)源。
當然,本地交易可以保證數(shù)據(jù)的一致性。

微服務(wù)架構(gòu)發(fā)生了變化。提到的3個模塊設(shè)計為3個不同數(shù)據(jù)源之上的3個服務(wù)(模式:每個服務(wù)的數(shù)據(jù)庫)。本地事務(wù)自然保證每個服務(wù)中的數(shù)據(jù)一致性。
但整個業(yè)務(wù)邏輯范圍如何呢?

FESCAR怎么做?
FESCAR只是上述問題的解決方案。

首先,如何定義分布式事務(wù)?
我們說,分布式事務(wù)是一個全局事務(wù),由一批Branch Transation組成,通常Branch Transation只是本地事務(wù)。

FESACR有3個基本組件:
- 事務(wù)協(xié)調(diào)器(TC):維護全局和分支事務(wù)的狀態(tài),驅(qū)動全局提交或回滾。
- Transaction Manager(TM):定義全局事務(wù)的范圍:開始全局事務(wù),提交或回滾全局事務(wù)。
- 資源管理器(RM):管理分支事務(wù)的資源,與TC通信以注冊分支事務(wù)和報告分支事務(wù)的狀態(tài),并驅(qū)動分支事務(wù)提交或回滾。

FESCAR管理分布式事務(wù)的典型生命周期:
- TM要求TC開始新的全球交易。TC生成表示全局事務(wù)的XID。
- XID通過微服務(wù)的調(diào)用鏈傳播。
- RM將本地事務(wù)注冊為XID到TC的相應(yīng)全局事務(wù)的分支。
- TM要求TC提交或回滾XID的相應(yīng)全局事務(wù)。
- TC在XID的相應(yīng)全局事務(wù)下驅(qū)動所有分支事務(wù)以完成分支提交或rollbaking。

有關(guān)原理和設(shè)計的更多詳細信息,請訪問FESCAR維基頁面。
歷史
- TXC:淘寶交易構(gòu)造函數(shù)。阿里巴巴中間件團隊自2014年起啟動該項目,以滿足應(yīng)用程序架構(gòu)從單一服務(wù)變?yōu)槲⒎?wù)所導致的直接交易問題。
- GTS:全球交易服務(wù)。TXC作為Aliyun中間件產(chǎn)品,新名稱GTS自2016年起發(fā)布。
- FESCAR:我們從2019年開始基于TXC / GTS開源開源項目FESCAR,以便與社區(qū)密切合作。
以上就是解析阿里GTS開源版本fescar分布式事務(wù)的詳細內(nèi)容,更多關(guān)于阿里GTS開源版本fescar分布式事務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Spring Cloud Eureka 服務(wù)上下線監(jiān)控的實現(xiàn)
這篇文章主要介紹了Spring Cloud Eureka 服務(wù)上下線監(jiān)控的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
Spring Boot2與Spring Boot3的區(qū)別小結(jié)
SpringBoot2和SpringBoot3之間有一些重要的區(qū)別,本文就來探討SpringBoot2和SpringBoot3之間的區(qū)別,具有一定的參考價值,感興趣的可以了解一下2023-10-10
Java switch 語句如何使用 String 參數(shù)
這篇文章主要介紹了Java switch 語句如何使用 String 參數(shù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下2019-06-06
深入理解Java基礎(chǔ)之try-with-resource語法糖
這篇文章主要介紹了深入理解Java基礎(chǔ)之try-with-resource語法糖,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
使用Java DOM解析器修改XML文件內(nèi)容的操作方法
在Java中,XML文件的解析和修改可以通過多種方法實現(xiàn),其中DOM(Document Object Model)是一種常用的方式,在本文中,我們將介紹如何使用Java DOM解析器修改XML文件中的內(nèi)容,并給出一個具體的示例,需要的朋友可以參考下2024-08-08
詳解如何在Spring Boot啟動后執(zhí)行指定代碼
這篇文章主要介紹了在Spring Boot啟動后執(zhí)行指定代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06

