成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分布式事務的解決方案—Seata AT模式

云計算 分布式
在AT模式中,需要使用Seata組件中的JDBC代理數據源DataSourceProxy,實現對真正目標數據源的代理訪問,通過代理實現攔截、解析sql的執行來實現快照數據的保存,如果業務執行成功,那么就刪除快照數據,如果業務執行失敗就使用快照回滾。

Seata是一款開源的分布式事務解決方案的框架,它致力于在微服務架構下提供高性能和簡單易用的分布式事務服務,Seata為用戶提供了AT、TCC、SAGA和XA事務模式。其中AT模式(auto transaction)是一種無侵入的分布式事務解決方案,AT模式的核心思想是基于二階段提交實現的。

1、二階段提交

    兩階段提交協議(Two-Phase Commit,2PC)是一種分布式事務處理協議,目的是在確保多個分布式系統中執行的事務能夠在所有參與者中保持一致性。2PC協議通過將事務的提交過程分為兩個階段來實現確保即使在出現故障的情況下,也能保持數據的一致。2PC的實現過程如下所示:

圖片圖片

第一階段:表決階段

(1)事務協調者向所有參與者(Participants)發送準備請求,詢問它們是否能夠提交事務

(2)每個參與者收到請求后,檢查其本地的事務狀態,確保它能夠完成操作。如果參與者準備好提交,它會將其狀態更改為“準備提交(Prepared)”并返回一個“準備好”響應給協調者。如果無法提交,參與者會返回“拒絕”響應。

    表決階段中所有參與者都不會將數據更改持久化到數據庫中,而是保留在一個臨時狀態。

第二階段:執行階段

(1)事務協調者收到了所有參與者的“準備好"響應,它會向所有參與者發送提交請求,告知參與者可以安全地將更改寫入數據庫

(2)參與者收到提交請求后,將更改持久化到數據庫并返回提交確認給事務協調者。

(3)如果事務協調者收到所有參與者的提交確認,它會宣布事務提交成功。如果有任何參與者拒絕提交,協調者會發送回滾請求,要求所有參與者回滾之前的操作。

    2PC優點的具有簡單易理解(協議流程較為簡單,易于實現和理解)、保證數據的一致性(所有參與者對于事務的提交或回滾保持一致)。同時它的缺點也很明顯,如阻塞(協調者崩潰時會導致參與者阻塞,無法繼續處理事務)、性能問題(2PC需要多次網絡往返,可能影響性能)、故障恢復復雜(處理參與者或協調者崩潰后的恢復機制比較復雜)。

2、Seata-AT模式

    Seata-AT模式幾個角色TC、TM、RM,這幾個角色的概念如下所示:

(1)TC【事務協調器】

    它是獨立的組件,需要獨立部署運行,Seata提供了這個獨立運行的程序,它負責維護全局事務的運行狀態,接收TM指令發起全局事務的提交與回滾,負責與RM通信,協調各個分支事務的提交或回滾。

(2)TM【事務管理器】

    TM需要嵌入應用程序,它負責開啟一個全局事務,并定義全局事務的范圍,TM目的是最終向TC發起全局提交或回滾指令。

(3)RM【資源管理器】

    RM與TC通信,控制分支事務,負責分支注冊、報告分支事務狀態,并接收事務協調器TC的指令,命令分支事務完成本地事務的提交或回滾。

    通過TC、TM、RM的的相互協調配合實現了分布式事務的處理,Seata-AT模式的實現原理圖如下所示:

圖片圖片

    TM負責定義全局事務的邊界,然后向TC申請開啟一個全局事務,全局事務創建成功后會生成全局唯一的XID,這個XID會在微服務請求鏈路上下文中傳播。

Seata-AT模式的第一階段的工作:

(1)通過攔截和解析業務sql,然后根據解析sql語句中的條件生成查詢前的sql語句,將查詢結果當做快照后保存起來,后續如果事務回滾直接根據快照數據生成反向sql進行回滾操作。

(2)Seata實現了JDBC協議,業務與數據庫交互首先要經過Seata,這樣Seata對sql進行了攔截與處理,處理完成后將sql發送到真實數據庫執行。

    由于上述操作在同一個本地事務中,那么數據庫的事務特性保證數據的一致性。

Seata-AT模式的第二階段工作:

    對于AT模式,二階段提交主要是將每個事務的參與者的快照數據刪除,同時釋放行鎖;如果回滾,利用快照數據執行回滾。

    在AT模式中,需要使用Seata組件中的JDBC代理數據源DataSourceProxy,實現對真正目標數據源的代理訪問,通過代理實現攔截、解析sql的執行來實現快照數據的保存,如果業務執行成功,那么就刪除快照數據,如果業務執行失敗就使用快照回滾。

責任編輯:武曉燕 來源: 龍蝦編程
相關推薦

2025-05-07 00:10:00

分布式事務TCC模式

2025-04-29 04:00:00

分布式事務事務消息

2022-03-24 07:51:27

seata分布式事務Java

2023-08-17 10:23:07

擴展方案

2023-09-14 15:44:46

分布式事務數據存儲

2020-05-28 09:35:05

分布式事務方案

2024-12-09 09:35:00

2023-11-06 13:15:32

分布式事務Seata

2023-01-06 09:19:12

Seata分布式事務

2022-06-27 08:21:05

Seata分布式事務微服務

2010-07-21 13:53:41

SQL Server分

2025-04-30 10:44:02

2024-10-09 14:14:07

2024-08-19 09:05:00

Seata分布式事務

2024-03-26 12:08:53

分布式事務存儲

2023-11-30 07:19:08

.NET開源

2022-06-21 08:27:22

Seata分布式事務

2022-07-03 14:03:57

分布式Seata

2021-09-28 09:43:11

微服務架構技術

2019-01-11 18:22:07

阿里巴巴技術開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品一二区 | 性一区 | 国内精品一区二区三区 | 欧美vide| 国产精品久久久久久久久久久免费看 | 亚洲国产精品一区二区三区 | 国产美女在线观看 | 亚洲精品日韩精品 | 日韩午夜| 日韩免费网 | 精品三级在线观看 | 国产精品久久久久久久久免费樱桃 | 玖玖免费 | 日本一区二区高清不卡 | 一级片在线免费看 | av一区二区三区四区 | 久久蜜桃av| 久久33| 精品免费视频一区二区 | 亚洲精品小视频在线观看 | 成人福利网站 | 免费激情| 日韩精品一区二区三区中文在线 | 在线一区二区国产 | 日韩久久精品电影 | 久草.com | 2018中文字幕第一页 | 99tv成人影院 | 一级免费a | 性色av一区二区三区 | 综合色在线 | 国产精品欧美一区二区三区不卡 | 国产精品美女久久久久aⅴ国产馆 | 亚洲精品久久区二区三区蜜桃臀 | 男女久久久 | 国产亚洲精品美女久久久久久久久久 | 日韩欧美久久精品 | 日日夜夜精品 | 成人精品在线观看 | 亚洲免费在线播放 | 久久成人免费视频 |