FESCAR(Fast & Easy Commit And Rollback) 是一個用於微服務架構的分佈式事務解決方案,它的特色是高性能且易於使用,旨在實現簡單並快速的事務提交與回滾。git
咱們如今來看看什麼是FESCAR。Fescar項目地址:github
https://github.com/alibaba/fescar數據庫
從傳統的單體應用提及,假設一個單體應用的業務由 3 個模塊構成,三者使用單個本地數據源。架構
這樣的話本地事務很天然就能夠保證數據一致性。分佈式
可是在微服務架構中就不這麼簡單了,這 3 個模塊被設計爲 3 個不一樣數據源之上的 3 個服務,每一個服務對應一個數據庫。微服務
本地事務固然也能夠保證每一個服務中的數據一致性,可是擴展到整個應用、整個業務邏輯範圍來看,狀況如何呢?性能
FESCAR 就是用於解決上述微服務架構中的事務問題的解決方案。設計
以下圖所示,分佈式事務是一個全局事務(Global Transaction),由一批分支事務(Branch Transation)組成,一般分支事務只是本地事務。中間件
FESCAR 中有三大基本組件:blog
FESCAR 管理分佈式事務的典型生命週期:
TXC:Taobao Transaction Constructor,阿里巴巴中間件團隊自 2014
年起啓動該項目,以知足應用程序架構從單一服務變爲微服務所致使的分佈式事務問題。
GTS:Global Transaction Service,2016 年 TXC 做爲阿里中間件的產品,改名爲 GTS 發佈。
FESCAR:2019 年開始基於 TXC/GTS 開源 FESCAR