【分佈式事務】阿里fescar

1、什麼是Fescar

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

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

https://github.com/alibaba/fescar數據庫

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

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

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

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

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

3、FESCAR 機制

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

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

FESCAR 中有三大基本組件:blog

  • Transaction Coordinator(TC):維護全局和分支事務的狀態,驅動全局事務提交與回滾。
  • Transaction Manager™:定義全局事務的範圍:開始、提交或回滾全局事務。
  • Resource Manager(RM):管理分支事務處理的資源,與 TC通訊以註冊分支事務並報告分支事務的狀態,並驅動分支事務提交或回滾。

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

  1. TM 要求 TC 開始新的全局事務,TC 生成表示全局事務的 XID。
  2. XID 經過微服務的調用鏈傳播。XID 經過微服務的調用鏈傳播。
  3. RM 在 TC 中將本地事務註冊爲 XID 的相應全局事務的分支。
  4. TM 要求 TC 提交或回滾 XID 的相應全局事務。。
  5. TC 驅動 XID 的相應全局事務下的全部分支事務,完成分支提交或回滾。

4、演進歷史

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

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

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

相關文章
相關標籤/搜索