精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

分布式事務方案匯總及Seata詳解

云計算 分布式
當某分支事務的try階段阻塞時,可能導致全局事務超時而觸發二階段的cancel操作。在未執行try操作時先執行了cancel操作,這時cancel不能做回滾,就是空回滾。

引言

隨著業務量的不斷增長,單體架構漸漸扛不住巨大的流量,此時就需要對服務進行 拆分 ,數據庫、表做 分庫分表 處理。以訂單系統為例,也就產生了訂單中心、用戶中心、庫存中心等,由此帶來的問題就是業務間相互隔離,每個業務都維護著自己的數據庫,數據的交換只能進行 RPC 調用。

當用戶再次下單時,需同時對訂單庫 order、庫存庫 storage、用戶庫 account 進行操作,可此時我們只能保證自己本地的數據一致性,無法保證調用其他服務的操作是否成功,所以為了保證整個下單流程的數據一致性,就需要分布式事務介入。

分布式事務方案一覽

實現分布式事務的方案比較多,常見的比如基于 XA 協議的 2PC、3PC,基于業務層的 TCC,還有應用消息隊列 + 消息表實現的最終一致性方案。

  • 2PC

基于 XA 協議實現的分布式事務,XA 協議中分為兩部分:事務管理器和本地資源管理器。其中本地資源管理器往往由數據庫實現,比如 Oracle、MYSQL 這些數據庫都實現了 XA 接口,而事務管理器則作為一個全局的調度者。

兩階段提交(2PC),對業務侵?很小,它最?的優勢就是對使??透明,用戶可以像使?本地事務?樣使?基于 XA 協議的分布式事務,能夠嚴格保障事務 ACID 特性。

2PC的缺點也是顯而易見,它是一個強一致性的同步阻塞協議,事務執?過程中需要將所需資源全部鎖定,也就是俗稱的 剛性事務。所以它比較適?于執?時間確定的短事務,整體性能比較差。

一旦事務協調者宕機或者發生網絡抖動,會讓參與者一直處于鎖定資源的狀態或者只有一部分參與者提交成功,導致數據的不一致。因此,在?并發性能?上的場景中,基于 XA 協議的分布式事務并不是最佳選擇。

  • 3PC

三段提交(3PC)是二階段提交(2PC)的一種改進版本 ,為解決兩階段提交協議的阻塞問題,上邊提到兩段提交,當協調者崩潰時,參與者不能做出最后的選擇,就會一直保持阻塞鎖定資源。

2PC 中只有協調者有超時機制,3PC 在協調者和參與者中都引入了超時機制,協調者出現故障后,參與者就不會一直阻塞。而且在第一階段和第二階段中又插入了一個準備階段(如下圖),保證了在最后提交階段之前各參與節點的狀態是一致的。

雖然 3PC 用超時機制,解決了協調者故障后參與者的阻塞問題,但與此同時卻多了一次網絡通信,性能上反而變得更差,也不太推薦。

  • TCC

所謂的 TCC 編程模式,也是兩階段提交的一個變種,不同的是 TCC 為在業務層編寫代碼實現的兩階段提交。TCC 分別指 Try、Confirm、Cancel ,一個業務操作要對應的寫這三個方法。

以下單扣庫存為例,Try 階段去占庫存,Confirm 階段則實際扣庫存,如果庫存扣減失敗 Cancel 階段進行回滾,釋放庫存。

TCC 不存在資源阻塞的問題,因為每個方法都直接進行事務的提交,一旦出現異常通過則 Cancel 來進行回滾補償,這也就是常說的補償性事務。

原本一個方法,現在卻需要三個方法來支持,可以看到 TCC 對業務的侵入性很強,而且這種模式并不能很好地被復用,會導致開發量激增。還要考慮到網絡波動等原因,為保證請求一定送達都會有重試機制,所以考慮到接口的冪等性。

  • 消息事務(最終一致性)

消息事務其實就是基于消息中間件的兩階段提交,將本地事務和發消息放在同一個事務里,保證本地操作和發送消息同時成功。

下單扣庫存原理圖:

  • 訂單系統向 MQ 發送一條預備扣減庫存消息,MQ 保存預備消息并返回成功 ACK
  • 接收到預備消息執行成功 ACK,訂單系統執行本地下單操作,為防止消息發送成功而本地事務失敗,訂單系統會實現 MQ 的回調接口,其內不斷的檢查本地事務是否執行成功,如果失敗則 rollback 回滾預備消息;成功則對消息進行最終 commit 提交。
  • 庫存系統消費扣減庫存消息,執行本地事務,如果扣減失敗,消息會重新投,一旦超出重試次數,則本地表持久化失敗消息,并啟動定時任務做補償。

基于消息中間件的兩階段提交方案,通常用在高并發場景下使用,犧牲數據的強一致性換取性能的大幅提升,不過實現這種方式的成本和復雜度是比較高的,還要看實際業務情況。

基于RokectMQ實現最終一致性具體實現可參考:訂單系統中的數據一致性方案及RocketMQ事務消息詳解

分布式事務Seata

Seata 也是從兩段提交演變而來的一種分布式事務解決方案,提供了 AT、TCC、SAGA 和 XA 等事務模式。

  • XA模式:強一致性分階段事務模式,犧牲了一定的可用性,無業務侵入
  • TCC模式:最終一致的分階段事務模式,有業務侵入
  • AT模式:最終一致的分階段事務模式,無業務侵入,也是Seata的默認模式
  • SAGA模式:長事務模式,有業務侵入

Seata事務管理中有三個重要的角色:

  • TC (Transaction Coordinator) - 事務協調者:維護全局和分支事務的狀態,協調全局事務提交或回滾。
  • TM (Transaction Manager) - 事務管理器:定義全局事務的范圍、開始全局事務、提交或回滾全局事務。
  • RM (Resource Manager) - 資源管理器:管理分支事務處理的資源,與TC交談以注冊分支事務和報告分支事務的狀態,并驅動分支事務提交或回滾。

Seata實現原理

(1)XA模式

seata的XA模式做了一些調整,但大體相似:

RM一階段的工作:

  • 注冊分支事務到TC
  • 執行分支業務sql但不提交
  • 報告執行狀態到TC

TC二階段的工作:

  • TC檢測各分支事務執行狀態:如果都成功,通知所有RM提交事務;如果有失敗,通知所有RM回滾事務

RM二階段的工作:

  • 接收TC指令,提交或回滾事務

XA模式XA模式

【XA模式實現】

Seata的starter已經完成了XA模式的自動裝配,實現非常簡單,步驟如下:

1、修改application.yml文件,開啟XA模式:

seata:
	data-source-proxy-mode: XA # 開啟數據源代理的XA模式

2、給發起全局事務的入口方法添加@GlobalTransactional注解,

@GlobalTransactional
public Long create(Order order) {    
    // 創建訂單    
    orderMapper.insert(order);    
    // 扣余額 ...略 
    // 扣減庫存 ...略    
    return order.getId();
}

(2)AT模式

AT模式同樣是分階段提交的事務模型,但缺彌補了XA模型中資源鎖定周期過長的缺陷。

階段一RM的工作:

  • 注冊分支事務
  • 記錄undo-log(數據快照)
  • 執行業務sql并提交
  • 報告事務狀態

階段二提交時RM的工作:

  • 刪除undo-log即可

階段二回滾時RM的工作:

  • 根據undo-log恢復數據到更新前

AT模式

執行流程如下:

(3)TCC模式

TCC模式與AT模式非常相似,每階段都是獨立事務,不同的是TCC通過人工編碼來實現數據恢復。需要實現三個方法:

  • Try:資源的檢測和預留;
  • Confirm:完成資源操作業務;要求 Try 成功 Confirm 一定要能成功。
  • Cancel:預留資源釋放,可以理解為try的反向操作。

TCC的工作模型圖:

TCC模式

【TCC的空回滾和業務懸掛】

當某分支事務的try階段阻塞時,可能導致全局事務超時而觸發二階段的cancel操作。在未執行try操作時先執行了cancel操作,這時cancel不能做回滾,就是空回滾。

對于已經空回滾的業務,如果以后繼續執行try,就永遠不可能confirm或cancel,這就是業務懸掛。應當阻止執行空回滾后的try操作,避免懸掛。

(4)Saga模式

Saga模式是SEATA提供的長事務解決方案。也分為兩個階段:

  • 一階段:直接提交本地事務
  • 二階段:成功則什么都不做;失敗則通過編寫補償業務來回滾

Saga模式優點:

  • 事務參與者可以基于事件驅動實現異步調用,吞吐高
  • 一階段直接提交事務,無鎖,性能好
  • 不用編寫TCC中的三個階段,實現簡單

缺點:

  • 軟狀態持續時間不確定,時效性差
  • 沒有鎖,沒有事務隔離,會有臟寫

(5)模式對比

參考&感謝

https://www.cnblogs.com/chengxy-nds/p/14046856.html

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2022-07-10 20:24:48

Seata分布式事務

2022-06-27 08:21:05

Seata分布式事務微服務

2024-08-19 09:05:00

Seata分布式事務

2022-06-21 08:27:22

Seata分布式事務

2023-01-06 09:19:12

Seata分布式事務

2025-04-28 00:44:04

2022-07-03 14:03:57

分布式Seata

2022-03-24 07:51:27

seata分布式事務Java

2025-05-07 00:10:00

分布式事務TCC模式

2025-08-27 09:11:48

2019-10-10 09:16:34

Zookeeper架構分布式

2023-09-14 15:44:46

分布式事務數據存儲

2025-04-30 10:44:02

2024-10-09 14:14:07

2021-04-23 08:15:51

Seata XA AT

2024-03-29 13:30:41

分布式事務節點

2020-12-09 09:14:57

SpringCloudSeata 分布式

2023-08-17 10:23:07

擴展方案

2025-04-29 04:00:00

分布式事務事務消息

2024-12-02 09:19:44

點贊
收藏

51CTO技術棧公眾號

麻豆精品网站| 豆花视频一区二区| 亚洲女同女同女同女同女同69| 91精品免费久久久久久久久| 青青草激情视频| 天堂成人娱乐在线视频免费播放网站| 91激情在线视频| 糖心vlog在线免费观看| 深夜影院在线观看| 久久国产日韩欧美精品| 午夜精品久久久久久99热| 久久久久久久久久久久| 日韩高清在线观看一区二区| 一本大道av伊人久久综合| 不卡中文字幕在线| 国产在线色视频| 成人国产视频在线观看| 国产日韩欧美视频在线| 五月婷婷视频在线| 国产综合亚洲精品一区二| 在线精品国产欧美| 亚洲天堂2024| 日本免费一区二区三区视频| 欧美专区在线观看一区| 中文字幕无码精品亚洲资源网久久| 福利片在线观看| 2023国产精品| 3d动漫啪啪精品一区二区免费| aaa在线视频| 精品1区2区3区4区| 日韩在线视频免费观看| 在线不卡av电影| 色狼人综合干| 精品国产免费人成电影在线观看四季| 亚洲综合av在线播放| av高清不卡| 精品国产91久久久久久| 少妇大叫太大太粗太爽了a片小说| 日本三级视频在线观看| 国产欧美日韩在线| 热舞福利精品大尺度视频| 视频二区在线观看| hitomi一区二区三区精品| 北条麻妃高清一区| 国内毛片毛片毛片毛片| 国产一区二区三区精品视频| 成人激情黄色网| 国产精品高潮呻吟久久久| 久久99久久99精品免视看婷婷| 国产精品福利在线观看| 无码人妻精品一区二区| 丝袜美腿亚洲综合| 国产精品久久久久久久av电影| 日韩欧美成人一区二区三区 | 国产日韩欧美亚洲| 日本黑人久久| 3p在线观看| 欧美激情一区在线观看| 亚洲蜜桃在线| 国产精品刘玥久久一区| 夜夜操天天操亚洲| 国产日韩av网站| 三级在线观看视频| 91久久精品一区二区三区| 992kp快乐看片永久免费网址| 成人免费一区| 91精品国产综合久久国产大片 | 1313精品午夜理伦电影| 精品久久免费看| 精品人妻一区二区三区日产乱码卜| 日韩伦理一区二区三区| 亚洲人成电影在线| 在线看片中文字幕| 欧美va天堂在线| 久久噜噜噜精品国产亚洲综合 | 欧美精品色综合| 黑人巨大猛交丰满少妇| 欧美激情极品| 这里只有精品在线观看| 欧美黄色免费看| 国产欧美短视频| 国产日韩在线观看av| 午夜精品久久久久久久96蜜桃| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 黄色污污网站在线观看| 国产一区二区伦理| 久久99精品久久久久久三级 | 欧美激情精品久久久| 国产九色在线播放九色| 狠狠色狠狠色合久久伊人| 成人永久免费| 岛国在线大片| 一区二区三区精品在线观看| 韩国日本在线视频| 91成人精品观看| 日韩福利视频在线观看| 91制片厂在线| av成人激情| 96国产粉嫩美女| 瑟瑟在线观看| 亚洲影视在线观看| 欧美女同在线观看| 日韩美女精品| 欧美老女人在线视频| 无码人妻丰满熟妇精品| 成人性视频免费网站| 亚洲欧美日本国产有色| 精品极品在线| 日韩视频一区二区在线观看| 非洲一级黄色片| 亚洲无吗在线| 91在线免费网站| 国产一二三在线观看| 亚洲无人区一区| 亚洲午夜精品一区| 国产探花一区二区| 97久久精品视频| www.五月婷| 国产精品久久二区二区| 国产情侣av自拍| 亚洲天堂av资源在线观看| 中文字幕亚洲欧美日韩在线不卡| 日本少妇吞精囗交| 国产精品一区二区在线看| 神马一区二区影院| 666av成人影院在线观看| 精品国产乱码久久久久久牛牛 | 在线观看亚洲| av资源站久久亚洲| gogogogo高清视频在线| 777欧美精品| www中文在线| 日本中文字幕一区| 日韩欧美亚洲区| 免费日韩电影| 国产视频精品免费播放| 中文字幕一区二区三区精品| 成人午夜大片免费观看| 欧美黑人在线观看| gogo人体一区| 久久免费视频在线观看| 国产91免费看| 天天影视色香欲综合网老头| 日本一卡二卡在线| 日韩一级网站| 久久99精品久久久久久久青青日本| av影院在线| 精品少妇一区二区三区| 国产第100页| a美女胸又www黄视频久久| 欧美又粗又长又爽做受| 黑人久久a级毛片免费观看| 久久久久久免费精品| 性xxxx视频| 色狠狠色狠狠综合| 毛片aaaaaa| 精品一区二区三区不卡| 欧美少妇在线观看| 一区二区三区四区精品视频| 久久久久久久久国产| 成人小说亚洲一区二区三区| 精品国产鲁一鲁一区二区张丽| 国产精品无码一区二区三区免费 | 夜夜春很很躁夜夜躁| 蜜臀久久久99精品久久久久久| 亚洲三区四区| 精品一区二区三区中文字幕| 欧美激情欧美激情在线五月| 五月激情六月婷婷| 欧美在线不卡一区| 97在线观看免费高| 成人一级片网址| 中文字幕乱码人妻综合二区三区| 不卡av一区二区| 91久久中文字幕| gogo高清午夜人体在线| 亚洲天堂网在线观看| 国产精品国产一区二区三区四区 | 国产成人精品av在线观| 精品女同一区二区三区在线播放| 精品无码人妻一区二区免费蜜桃| 国产一区二区三区在线观看精品 | 中文字幕在线日韩| 韩国av永久免费| 欧洲另类一二三四区| 唐朝av高清盛宴| 91久色porny| 日韩 国产 一区| 一本色道久久综合亚洲精品高清| 亚洲欧洲一区二区| 国产精品调教| 成人国产精品久久久| 日韩精品av| 久久人人爽人人爽人人片亚洲| 天天av天天翘| 欧美一区二区福利在线| 久久精品视频5| 亚洲一区二区三区小说| 国产又黄又粗又猛又爽的| av在线播放一区二区三区| 亚洲第一天堂久久| 香蕉亚洲视频| 成人一级生活片| 欧美h版在线| 久久久com| 网站一区二区| 国产日韩欧美中文在线播放| 周于希免费高清在线观看| 精品国偷自产在线视频99| 日韩精品视频无播放器在线看| 欧美一级xxx| 亚洲视频在线观看一区二区 | 欧美激情一区二区三区在线视频观看| 激情小视频在线| 日韩精品在线第一页| 国产黄频在线观看| 欧美精品日日鲁夜夜添| 欧美日韩a v| 粉嫩老牛aⅴ一区二区三区| 欧美日韩精品在线观看视频 | av免费观看大全| 中文字幕一区二区三区乱码图片 | 美国黑人一级大黄| 91啦中文在线观看| 亚洲精品在线视频免费观看| 国产成人综合网站| 免费国偷自产拍精品视频| 蓝色福利精品导航| 美女网站色免费| 日韩av在线发布| 日韩中文字幕三区| 一本一本久久| 国产91对白刺激露脸在线观看| 亚洲成色精品| 国产午夜大地久久| 亚洲人成久久| 少妇无码av无码专区在线观看| 欧美日韩国内| 欧美久久久久久久久久久久久久| 中文在线日韩| 久久观看最新视频| 欧美99久久| 国产精品久久国产| 国内视频精品| 精品人妻少妇一区二区| 亚洲精选在线| 丝袜老师办公室里做好紧好爽| 国产精品婷婷| www.99av.com| 蜜臀av在线播放一区二区三区| 色片在线免费观看| 国产一区二区三区视频在线播放| 91av免费观看| 成人高清视频在线观看| 日本69式三人交| 91免费看`日韩一区二区| 一本加勒比北条麻妃| 久久精品日产第一区二区三区高清版| 99久久精品免费视频| 国产精品久久久久久妇女6080| 唐朝av高清盛宴| 性欧美大战久久久久久久久| 999这里只有精品| 91九色02白丝porn| 怡红院男人的天堂| 日韩免费看网站| 视频在线观看你懂的| 在线观看视频99| 3d玉蒲团在线观看| 国产91精品久久久久| 成人一区视频| 97在线电影| 最新国产精品视频| 这里只有精品66| 亚洲精品影视| 少妇一级淫免费放| 成人午夜在线播放| 亚洲自拍偷拍图| 亚洲午夜视频在线观看| 欧美a视频在线观看| 91精品国产欧美一区二区成人| 十八禁一区二区三区| 色老头一区二区三区在线观看| 金瓶狂野欧美性猛交xxxx| 国产精品69精品一区二区三区| 精品国产一区二| 欧美午夜精品久久久久久蜜| 欧美 日韩 国产精品免费观看| 国产午夜福利视频在线观看| 狠狠色伊人亚洲综合成人| 亚洲国产综合视频| 亚洲日本一区二区三区| 在线免费黄色av| 91麻豆精品国产综合久久久久久 | 国产男女激情视频| 国产精品一级在线| 天天摸日日摸狠狠添| 午夜日韩在线观看| 99久久免费国产精精品| 亚洲天堂成人在线| 精品人人视频| 99www免费人成精品| 久久精品播放| 女性隐私黄www网站视频| 国产成人精品免费网站| 欧美性猛交xxxx乱大交少妇| 午夜欧美在线一二页| 精品国产伦一区二区三区| 在线电影中文日韩| 中国色在线日|韩| 高清视频在线观看一区| 日韩一区欧美| 黄色国产小视频| www一区二区| 日本在线观看中文字幕| 欧美一级片在线观看| 在线视频1区2区| 日韩女优人人人人射在线视频| 欧美成人午夜77777| 免费一级淫片aaa片毛片a级| 精品一区二区久久| 黄色av片三级三级三级免费看| 欧美午夜美女看片| 手机看片福利在线| 韩国三级电影久久久久久| 亚洲专区**| 无码毛片aaa在线| 国产在线视频一区二区| 91久久久久久久久久久久久久| 欧美性受xxxx黑人xyx性爽| 欧美理论在线观看| 欧美在线观看网址综合| 里番精品3d一二三区| 成年人看的毛片| 成人福利电影精品一区二区在线观看| 在线免费日韩av| 精品卡一卡二卡三卡四在线| 免费在线观看的电影网站| 痴汉一区二区三区| 狠狠入ady亚洲精品经典电影| 成人一区二区三区仙踪林| 一区二区高清免费观看影视大全| 精品人妻午夜一区二区三区四区| 久久成人国产精品| 免费观看亚洲天堂| 国产精品久久久久久久久电影网| 国产美女在线精品| 欧美另类视频在线观看| 精品日韩一区二区三区| 国产丝袜在线观看视频| 久久久久一区二区| 三级久久三级久久久| 久久日免费视频| 91精品国产综合久久久久久| 神马午夜伦理不卡| 国产免费一区二区| 美女爽到呻吟久久久久| 中文字幕av久久爽一区| 欧美日韩精品一区二区在线播放| 久操视频在线| 成人影片在线播放| 香蕉视频成人在线观看| 国产精品久久国产精麻豆96堂| 欧美日韩亚洲国产综合| 性欧美videoshd高清| 国产三区精品| 日日夜夜精品免费视频| 亚洲最大的黄色网址| 精品久久久久久无| 国产精品亚洲一区二区三区在线观看 | 色棕色天天综合网| www.cao超碰| 亚洲国产一区二区视频| 毛片在线免费| 成人中文字幕+乱码+中文字幕| 精品成人免费| 黄免费在线观看| 日韩欧美久久一区| 中文字幕资源网在线观看免费| 香蕉精品视频在线| 99国产精品久久| 亚洲影视一区二区| 国语自产精品视频在线看| 日本久久综合| 无码人妻一区二区三区免费n鬼沢 久久久无码人妻精品无码 | 亚洲成人a**址| 成人av在线看| 成人黄色片在线观看| 久久免费视频观看| 色综合色综合| 亚洲观看黄色网| 欧美一区二区三区人| 日本电影欧美片| 久久手机在线视频| 国产精品久久久久aaaa| 亚洲 美腿 欧美 偷拍| 亚洲一区二区三区香蕉| 日韩综合小视频| 日韩美女一级片| 久久国产一区二区三区|