微服務架構分布式事務解決方案 FESCAR

2021-09-11 11:25:01 字數 1211 閱讀 8361

fescar(fast & easy commit and rollback) 是乙個用於微服務架構的分布式事務解決方案,它的特點是高效能且易於使用,旨在實現簡單並快速的事務提交與回滾。

微服務架構中的分布式事務問題

從傳統的單體應用說起,假設乙個單體應用的業務由 3 個模組構成,三者使用單個本地資料來源。

這樣的話本地事務很自然就可以保證資料一致性。

但是在微服務架構中就不這麼簡單了,這 3 個模組被設計為 3 個不同資料來源之上的 3 個服務,每個服務對應乙個資料庫。

本地事務當然也可以保證每個服務中的資料一致性,但是擴充套件到整個應用、整個業務邏輯範圍來看,情況如何呢?

fescar 機制

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

如下圖所示,分布式事務是乙個全域性事務(global transaction),由一批分支事務(branch transation)組成,通常分支事務只是本地事務。

fescar 中有三大基本元件:

fescar 管理分布式事務的典型生命週期:

tm 要求 tc 開始新的全域性事務,tc 生成表示全域性事務的 xid。

xid 通過微服務的呼叫鏈傳播。

rm 在 tc 中將本地事務註冊為 xid 的相應全域性事務的分支。

tm 要求 tc 提交或回滾 xid 的相應全域性事務。

tc 驅動 xid 的相應全域性事務下的所有分支事務,完成分支提交或回滾。

演進歷史

微服務架構及分布式事務解決方案

分布式事務場景如何設計系統架構及解決資料一致性問題,個人理解最終方案把握以下原則就可以了,那就是 大事務 小事務 原子事務 非同步 訊息通知 解決分布式事務的最好辦法其實就是不考慮分布式事務,將乙個大的業務進行拆分,整個大的業務流程,轉化成若干個小的業務流程,然後通過設計補償流程從而考慮最終一致性。...

微服務架構之分布式事務解決方案一

場景一 建立訂單 預留庫存 扣積分 鎖定優惠券 場景二 建立交易訂單 查詢賬戶 建立交易記錄 判斷賬戶餘額並扣款 增加積分 通知支付平台 場景三 收到銀行扣款結果 更改訂單狀態 給賬戶加款 增加積分 生成會計分錄 通知電商平台 場景四 收到支付平台的支付結果 更改訂單狀態,扣減庫存,扣減積分,使用優...

微服務解決方案 分布式事務 Seata

seata is an easy to use,high performance,open source distributed transaction solution.seata 是乙個簡單易用的,高效能,開源的分布式事務解決方案。at模式是一種無侵入的分布式事務解決方案。在at模式下,使用者只...