解析阿里GTS開源版本fescar分布式事務
前言碎語
阿里重磅開源fescar分布式事務框架、其前身是擁有多項專利的云分布式事務產品GTS、很早前阿里在推廣GTS分布式事務的時候就隱隱透露過可能會有開源項目的推出,終于在社區(qū)千呼萬喚之下fescar發(fā)布了。目前是0.1的版本,因為脫胎于商業(yè)產品,社區(qū)版本要上生產環(huán)境可能需要在社區(qū)迭代孵化一段時間。代碼可以先拉下來研究一下,后期持續(xù)關注fescar的發(fā)展。
項目地址:https://github.com/alibaba/fescar
什么是FESCAR?
一種分布式事務解決方案,具有高性能和易用性的微服務架構。
微服務中的分布式事務問題
讓我們想象一下傳統的單片應用程序。其業(yè)務由3個模塊構成。他們使用單個本地數據源。
當然,本地交易可以保證數據的一致性。
微服務架構發(fā)生了變化。提到的3個模塊設計為3個不同數據源之上的3個服務(模式:每個服務的數據庫)。本地事務自然保證每個服務中的數據一致性。
但整個業(yè)務邏輯范圍如何呢?
FESCAR怎么做?
FESCAR只是上述問題的解決方案。
首先,如何定義分布式事務?
我們說,分布式事務是一個全局事務,由一批Branch Transation組成,通常Branch Transation只是本地事務。
FESACR有3個基本組件:
- 事務協調器(TC):維護全局和分支事務的狀態(tài),驅動全局提交或回滾。
- Transaction Manager(TM):定義全局事務的范圍:開始全局事務,提交或回滾全局事務。
- 資源管理器(RM):管理分支事務的資源,與TC通信以注冊分支事務和報告分支事務的狀態(tài),并驅動分支事務提交或回滾。
FESCAR管理分布式事務的典型生命周期:
- TM要求TC開始新的全球交易。TC生成表示全局事務的XID。
- XID通過微服務的調用鏈傳播。
- RM將本地事務注冊為XID到TC的相應全局事務的分支。
- TM要求TC提交或回滾XID的相應全局事務。
- TC在XID的相應全局事務下驅動所有分支事務以完成分支提交或rollbaking。
有關原理和設計的更多詳細信息,請訪問FESCAR維基頁面。
歷史
- TXC:淘寶交易構造函數。阿里巴巴中間件團隊自2014年起啟動該項目,以滿足應用程序架構從單一服務變?yōu)槲⒎账鶎е碌闹苯咏灰讍栴}。
- GTS:全球交易服務。TXC作為Aliyun中間件產品,新名稱GTS自2016年起發(fā)布。
- FESCAR:我們從2019年開始基于TXC / GTS開源開源項目FESCAR,以便與社區(qū)密切合作。
以上就是解析阿里GTS開源版本fescar分布式事務的詳細內容,更多關于阿里GTS開源版本fescar分布式事務的資料請關注腳本之家其它相關文章!
相關文章
SpringBoot整合Minio實現上傳文件的完整步驟記錄
MinIO是一個基于Apache License v2.0開源協議的對象存儲服務,它兼容亞馬遜S3云存儲服務接口,非常適合于存儲大容量非結構化的數據,下面這篇文章主要給大家介紹了關于SpringBoot整合Minio實現上傳文件的完整步驟,需要的朋友可以參考下2022-05-05解決沒有@RunWith 和 @SpringBootTest注解或失效問題
這篇文章主要介紹了解決沒有@RunWith 和 @SpringBootTest注解或失效問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04基于Java8并行流(parallelStream)的注意點
這篇文章主要介紹了Java8并行流(parallelStream)的注意點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07