阿里分佈式事務框架GTS開源啦!

就在9號,阿里分佈式事務框架GTS開源了一個免費社區版Fescar,看到了這個消息心裏很是的激動!在微服務系統中,分佈式事務一直是痛點,也是難點。社區裏也有一些開源的分佈式解決方案的框架,好比ByteTCC、LCN,可是這些框架沒有一個權威的組織在維護,或多或少你們都有點不敢用。阿里開源的分佈式事務解決框架Fescar會不會一統分佈式事務江湖,你們拭目以待!html

咱們如今來看看什麼是FESCAR。Fescar項目地址:git

https://github.com/alibaba/fescargithub

1、什麼是Fescar數據庫

FESCAR(Fast & Easy Commit And Rollback) 是一個用於微服務架構的分佈式事務解決方案,它的特色是高性能且易於使用,旨在實現簡單並快速的事務提交與回滾。架構

2、微服務架構中的分佈式事務問題框架

從傳統的單體應用提及,假設一個單體應用的業務由 3 個模塊構成,三者使用單個本地數據源。分佈式

 
 

這樣的話本地事務很天然就能夠保證數據一致性。微服務

可是在微服務架構中就不這麼簡單了,這 3 個模塊被設計爲 3 個不一樣數據源之上的 3 個服務,每一個服務對應一個數據庫。性能

本地事務固然也能夠保證每一個服務中的數據一致性,可是擴展到整個應用、整個業務邏輯範圍來看,狀況如何呢?設計

 
 

3、FESCAR 機制

FESCAR 就是用於解決上述微服務架構中的事務問題的解決方案。

 
 

以下圖所示,分佈式事務是一個全局事務(Global Transaction),由一批分支事務(Branch Transation)組成,一般分支事務只是本地事務。

 
 

FESCAR 中有三大基本組件:

Transaction Coordinator(TC):維護全局和分支事務的狀態,驅動全局事務提交與回滾。

Transaction Manager(TM):定義全局事務的範圍:開始、提交或回滾全局事務。

Resource Manager(RM):管理分支事務處理的資源,與 TC 通訊以註冊分支事務並報告分支事務的狀態,並驅動分支事務提交或回滾。

 
 

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

TM 要求 TC 開始新的全局事務,TC 生成表示全局事務的 XID。

XID 經過微服務的調用鏈傳播。

RM 在 TC 中將本地事務註冊爲 XID 的相應全局事務的分支。

TM 要求 TC 提交或回滾 XID 的相應全局事務。

TC 驅動 XID 的相應全局事務下的全部分支事務,完成分支提交或回滾。

 
 

4、演進歷史

TXC:Taobao Transaction Constructor,阿里巴巴中間件團隊自 2014 年起啓動該項目,以知足應用程序架構從單一服務變爲微服務所致使的分佈式事務問題。

GTS:Global Transaction Service,2016 年 TXC 做爲阿里中間件的產品,改名爲 GTS 發佈。

FESCAR:2019 年開始基於 TXC/GTS 開源 FESCAR。

5、還在等什麼

這麼好的事情還在等什麼!小編所以高興的一晚上未眠!抓緊時間搞一波試試了!



做者:Java填坑之路
連接:https://www.jianshu.com/p/9524ec1cb0ce
來源:簡書
簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。

原文出處:https://www.cnblogs.com/xianchonyigeyi/p/10255840.html

相關文章
相關標籤/搜索