解析阿里GTS開源版本fescar分布式事務(wù)
前言碎語
阿里重磅開源fescar分布式事務(wù)框架、其前身是擁有多項(xiàng)專利的云分布式事務(wù)產(chǎn)品GTS、很早前阿里在推廣GTS分布式事務(wù)的時候就隱隱透露過可能會有開源項(xiàng)目的推出,終于在社區(qū)千呼萬喚之下fescar發(fā)布了。目前是0.1的版本,因?yàn)槊撎ビ谏虡I(yè)產(chǎn)品,社區(qū)版本要上生產(chǎn)環(huán)境可能需要在社區(qū)迭代孵化一段時間。代碼可以先拉下來研究一下,后期持續(xù)關(guān)注fescar的發(fā)展。
項(xiàng)目地址:https://github.com/alibaba/fescar
什么是FESCAR?
一種分布式事務(wù)解決方案,具有高性能和易用性的微服務(wù)架構(gòu)。
微服務(wù)中的分布式事務(wù)問題
讓我們想象一下傳統(tǒng)的單片應(yīng)用程序。其業(yè)務(wù)由3個模塊構(gòu)成。他們使用單個本地?cái)?shù)據(jù)源。
當(dāng)然,本地交易可以保證數(shù)據(jù)的一致性。
微服務(wù)架構(gòu)發(fā)生了變化。提到的3個模塊設(shè)計(jì)為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):維護(hù)全局和分支事務(wù)的狀態(tài),驅(qū)動全局提交或回滾。
- Transaction Manager(TM):定義全局事務(wù)的范圍:開始全局事務(wù),提交或回滾全局事務(wù)。
- 資源管理器(RM):管理分支事務(wù)的資源,與TC通信以注冊分支事務(wù)和報(bào)告分支事務(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è)計(jì)的更多詳細(xì)信息,請?jiān)L問FESCAR維基頁面。
歷史
- TXC:淘寶交易構(gòu)造函數(shù)。阿里巴巴中間件團(tuán)隊(duì)自2014年起啟動該項(xiàng)目,以滿足應(yīng)用程序架構(gòu)從單一服務(wù)變?yōu)槲⒎?wù)所導(dǎo)致的直接交易問題。
- GTS:全球交易服務(wù)。TXC作為Aliyun中間件產(chǎn)品,新名稱GTS自2016年起發(fā)布。
- FESCAR:我們從2019年開始基于TXC / GTS開源開源項(xiàng)目FESCAR,以便與社區(qū)密切合作。
以上就是解析阿里GTS開源版本fescar分布式事務(wù)的詳細(xì)內(nèi)容,更多關(guān)于阿里GTS開源版本fescar分布式事務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mybatis-generator-gui根據(jù)需求改動示例
這篇文章主要為大家介紹了mybatis-generator-gui根據(jù)需求改動示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(2)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07SpringBoot整合Minio實(shí)現(xiàn)上傳文件的完整步驟記錄
MinIO是一個基于Apache License v2.0開源協(xié)議的對象存儲服務(wù),它兼容亞馬遜S3云存儲服務(wù)接口,非常適合于存儲大容量非結(jié)構(gòu)化的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合Minio實(shí)現(xiàn)上傳文件的完整步驟,需要的朋友可以參考下2022-05-05詳細(xì)聊聊Spring MVC重定向與轉(zhuǎn)發(fā)
大家應(yīng)該都知道請求重定向和請求轉(zhuǎn)發(fā)都是web開發(fā)中資源跳轉(zhuǎn)的方式,這篇文章主要給大家介紹了關(guān)于Spring MVC重定向與轉(zhuǎn)發(fā)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09解決沒有@RunWith 和 @SpringBootTest注解或失效問題
這篇文章主要介紹了解決沒有@RunWith 和 @SpringBootTest注解或失效問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04基于Java8并行流(parallelStream)的注意點(diǎn)
這篇文章主要介紹了Java8并行流(parallelStream)的注意點(diǎn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07