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

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


咨詢
建站咨詢
