新聞中心
FESCAR:阿里重磅開源分布式事務(wù)解決方案
作者:阿飛的博客 2019-01-11 18:22:07
新聞
開源
分布式 讓我們想象一個(gè)傳統(tǒng)的應(yīng)用,由3個(gè)模塊構(gòu)成,并且這三個(gè)模塊使用同一個(gè)數(shù)據(jù)源。很明顯,數(shù)據(jù)一致性由數(shù)據(jù)庫提供的本地事務(wù)就能搞定。

創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)與策劃設(shè)計(jì),華寧網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:華寧等地區(qū)。華寧做網(wǎng)站價(jià)格咨詢:028-86922220
FESCAR名字的由來:Fast & EaSy Commit And Rollback
FESCAR是啥?
被用在微服務(wù)架構(gòu)中的高性能分布式事務(wù)解決方案。
微服務(wù)中的分布式事務(wù)問題
讓我們想象一個(gè)傳統(tǒng)的應(yīng)用,由3個(gè)模塊構(gòu)成,并且這三個(gè)模塊使用同一個(gè)數(shù)據(jù)源。很明顯,數(shù)據(jù)一致性由數(shù)據(jù)庫提供的本地事務(wù)就能搞定。
[[255360]] local transaction
然而,一切美好都被在微服務(wù)架構(gòu)中被打破。3個(gè)模塊變成了3個(gè)服務(wù),每個(gè)服務(wù)有獨(dú)立的數(shù)據(jù)源(參考https://microservices.io/patterns/data/database-per-service.html)。每個(gè)服務(wù)的數(shù)據(jù)一致性由本地事務(wù)保證,但是跨服務(wù)的業(yè)務(wù)呢?如下圖所示,某個(gè)業(yè)務(wù)既需要操作庫存(Storage),又需要操作訂單(Order),還需要操作賬戶(Account)。
[[255361]]
distribution transaction
FESCAR怎么做?
[[255362]] distribution transaction
首先,如果定義分布式事務(wù)?我們認(rèn)為一個(gè)分布式事務(wù)是由多個(gè)分支事務(wù)組成的全局事務(wù),通常來說,分支事務(wù)就是本地事務(wù)。
[[255363]]
define distribution transaction
FESCAR有三個(gè)基本組件:
Transaction Coordinator(TC):事務(wù)協(xié)調(diào)器,維護(hù)著全局事務(wù)和分支事務(wù)的狀態(tài), 它來決定全局的提交還是回滾。
Transaction Manager(TM): 事務(wù)管理器,定義全局事務(wù)的范圍:開始一個(gè)全局事務(wù),提交或者回滾一個(gè)全局事務(wù)。
Resource Manager(RM): 資源管理器,管理分支事務(wù)處理的資源,與TC通信以注冊分支事務(wù)并報(bào)告分支事務(wù)的狀態(tài),并驅(qū)動分支事務(wù)提交或回滾.
[[255364]] FESCAR 3 components
一個(gè)典型的FESCAR維護(hù)的分布式事務(wù)的生命周期如下:
TM向TC請求開啟一個(gè)全局事務(wù),TC生成一個(gè)XID,一個(gè)表示全局事務(wù)的***ID;
通過微服務(wù)的調(diào)用鏈,XID被廣播出去(圖中綠色線路);
RM向TC注冊一個(gè)屬于XID表示的分布式事務(wù)下的本地事務(wù)(紅色箭頭);
TM向TC詢問是提交還是回滾XID表示的全局事務(wù);
TC驅(qū)動XID表示的全局事務(wù)下的所有分支事務(wù),完成提交或者回滾動作。
如下圖所示:
[[255365]] lifecycle
參考:https://github.com/alibaba/fescar
網(wǎng)頁名稱:FESCAR:阿里重磅開源分布式事務(wù)解決方案
網(wǎng)頁路徑:http://m.fisionsoft.com.cn/article/ccdjpso.html


咨詢
建站咨詢
