国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

分布式事務(wù)的解決方案—Seata TCC模式

開發(fā) 前端
TCC模式資源鎖定時間短:相較于傳統(tǒng)的兩階段提交(2PC),TCC模式可以減少資源鎖定的時間,因為資源僅在Try階段被預(yù)留,并在Confirm或Cancel階段迅速釋放。

在分布式事務(wù)解決方案中有Seata AT模式,但是AT模式要求是關(guān)系型數(shù)據(jù)庫(因為undolog表需要和業(yè)務(wù)保持原子性),此時如果事務(wù)中存在非關(guān)系型數(shù)據(jù)庫(如Redis、ES等),那么AT模式就無法滿足要求了,如下圖所示:

圖片圖片

此時我們就需要Seata TCC模式來幫助我們解決這種場景下的分布式事務(wù)問題。

1、認(rèn)識Seata TCC模式

TCC(Try-Confirm-Cancel)模式是一種補(bǔ)償性事務(wù)模式的解決方案,因為補(bǔ)償?shù)臉I(yè)務(wù)需要使用者自己寫,不像AT模式那樣的無侵入性的分布式事務(wù)處理方案,如下是TCC模式的執(zhí)行流程圖:

圖片圖片

TCC將一個完整的業(yè)務(wù)操作分為三個階段,如下圖整理所示:

圖片圖片

Try階段:嘗試執(zhí)行業(yè)務(wù)操作,預(yù)留必要的業(yè)務(wù)資源,并檢查數(shù)據(jù)的有效性。

Confirm階段:如果Try階段所有參與的操作都成功,則進(jìn)入Confirm階段就會正式完成業(yè)務(wù)操作,提交事務(wù),并釋放在Try階段預(yù)留的資源。

Cancel階段:如果Try階段有任何一個操作失敗,或者由于某種原因需要回滾事務(wù),則觸發(fā)Cancel階段,撤銷所有已執(zhí)行的Try操作,回滾到事務(wù)開始之前的狀態(tài),并釋放預(yù)留的資源。

2、理解TCC模式

為了方便理解TCC模式,以A(賬戶總額1000元)向B(賬戶總額2000元)轉(zhuǎn)賬100元為例進(jìn)行解析,那么TCC模式下的操作流程如下圖所示:

圖片圖片

Try階段的工作:A賬戶先從總資金中扣除100元,但是這個100處于凍結(jié)狀態(tài);B賬戶預(yù)增加100元,這個100處于不可用狀態(tài)。如下圖所示:

圖片圖片

(a)如果A與B在Try階段都正常的執(zhí)行,接下來就是執(zhí)行Confirm階段的任務(wù),A賬戶凍結(jié)100變成0元,這個100真正的轉(zhuǎn)給B賬戶;B賬戶的總額增加100元,預(yù)增加的金額變成0元,如下圖所示:

圖片圖片

(b)如果A與B在Try階段未正常的執(zhí)行,接下來A賬戶的凍結(jié)100變成0元,恢復(fù)A賬戶的資金的總額;B賬戶資金的總額不變化,預(yù)增加的金額變成0元,如下圖所示:

圖片圖片

3、Seata TCC事務(wù)模型的三種異常

在TCC事務(wù)模型涉及到的三種異常(空回滾、冪等性、防懸掛)是不可避免的,下面我們來了解這三種異常發(fā)生的原因以及處理方案。

(1)空回滾

A調(diào)用C的時候,由于網(wǎng)絡(luò)抖動的原因?qū)е翪沒有請求成功,此時服務(wù)超時走兜底機(jī)制返回異常給A,如下圖所示:

圖片圖片

當(dāng)A發(fā)現(xiàn)B服務(wù)異常,TC就會通知A、B、C執(zhí)行回滾操作,但是C由于Try階段都沒有執(zhí)行就直接執(zhí)行Cancel階段,最終就可能導(dǎo)致業(yè)務(wù)數(shù)據(jù)的不一致性。

空回滾處理方案:

Cancel執(zhí)行的前提是一定要執(zhí)行過Try階段,所以增加一個日志表來記錄是否執(zhí)行Try階段,如果沒有執(zhí)行Try階段,那么Cancel階段也不執(zhí)行。

(2)冪等性

TCC中二階段的方法被多次的調(diào)用(二階段會有定時器不斷的重試),如下如所示:

圖片圖片

冪等性處理方案:狀態(tài)機(jī)方式

在日志表中執(zhí)行更新操作的時候(update log set status= 2 where status= 1)通過獲取影響行數(shù)來判斷是否執(zhí)行成功,如果影響行數(shù)為0就不繼續(xù)處理;如果影響行數(shù)不為0就繼續(xù)Cancel的業(yè)務(wù)邏輯。

(3)防懸掛

由于網(wǎng)絡(luò)擁堵等原因?qū)е翧調(diào)用C的Try方法的請求發(fā)送成功,但是C與A之間自動斷開了連接,導(dǎo)致A認(rèn)為C執(zhí)行異常了,此時TC發(fā)送執(zhí)行回滾操作命令,這就導(dǎo)致Cancel階段比Try先執(zhí)行,如下圖所示:

圖片圖片

當(dāng)C服務(wù)做完Try階段的工作后,此時資源被預(yù)留出來了;但是Cancel已經(jīng)執(zhí)行完成了,表示那么整個事務(wù)就結(jié)束了,進(jìn)而導(dǎo)致業(yè)務(wù)數(shù)據(jù)的不一致性。

防懸掛問題的處理方案:日志表

在Cancel執(zhí)行完成之后要保證Try方法不能再執(zhí)行了,此時在日志表中增加一條Cancel的記錄,等到Try執(zhí)行的時候,其也要增加一條記錄,但是由于Cancel增加了日志記錄,此時Try就增加失敗,進(jìn)而阻止Try繼續(xù)執(zhí)行。

總結(jié):

(1)TCC模式資源鎖定時間短:相較于傳統(tǒng)的兩階段提交(2PC),TCC模式可以減少資源鎖定的時間,因為資源僅在Try階段被預(yù)留,并在Confirm或Cancel階段迅速釋放。

(2)TCC模式業(yè)務(wù)邏輯靈活:我們可以根據(jù)業(yè)務(wù)需求自定義每個階段的邏輯,使得TCC模式非常靈活。

(3)TCC模式保證強(qiáng)一致性:它可以確保事務(wù)要么都成功,要么都回滾。

(4)TCC模式實現(xiàn)復(fù)雜(需要為每個業(yè)務(wù)操作明確定義Try、Confirm和Cancel三個階段的邏輯)、增加了協(xié)調(diào)開銷、業(yè)務(wù)侵入性(業(yè)務(wù)邏輯與事務(wù)邏輯耦合)。

責(zé)任編輯:武曉燕 來源: 龍蝦編程
相關(guān)推薦

2025-04-28 00:44:04

2024-12-09 09:35:00

2024-10-09 14:14:07

2025-04-30 10:44:02

2022-01-12 10:02:02

TCC模式 Seata

2025-08-27 09:11:48

2025-04-29 04:00:00

分布式事務(wù)事務(wù)消息

2022-03-24 07:51:27

seata分布式事務(wù)Java

2023-08-17 10:23:07

擴(kuò)展方案

2022-06-21 08:27:22

Seata分布式事務(wù)

2020-05-28 09:35:05

分布式事務(wù)方案

2023-09-14 15:44:46

分布式事務(wù)數(shù)據(jù)存儲

2023-01-06 09:19:12

Seata分布式事務(wù)

2023-11-06 13:15:32

分布式事務(wù)Seata

2022-06-27 08:21:05

Seata分布式事務(wù)微服務(wù)

2010-07-21 13:53:41

SQL Server分

2024-08-19 09:05:00

Seata分布式事務(wù)

2023-11-30 07:19:08

.NET開源

2024-03-26 12:08:53

分布式事務(wù)存儲

2022-07-03 14:03:57

分布式Seata
點贊
收藏

51CTO技術(shù)棧公眾號

欧洲精品久久| 不卡的国产精品| 一本大道综合伊人精品热热| 欧洲亚洲精品视频| 欧美视频在线一区| 中文字幕在线高清| 欧美极品少妇全裸体| 欧美第一精品| 最新不卡av| 亚洲欧美日韩国产综合在线| 高清国产福利在线观看| 日韩av中文字幕在线| 成人福利一区| 国产二区不卡| 不卡的av在线| 青青草在线免费观看| 国产视频一区在线| 国产精品欧美在线观看| 视频在线一区二区三区| 欧美激情一区三区| 国产黄色在线观看| 国内精品美女av在线播放| 在线视频精品| 无套内精的网站| 亚洲精品一区二区在线观看| 开心激情综合| 亚洲视频精品一区| 亚洲一区中文在线| 深夜视频一区二区| av一区和二区| 成人在线观看黄| 国产精品久久久久婷婷二区次| 久久在线观看| 国产日本欧美一区二区三区在线| 国产午夜精品一区二区三区欧美| 国产va亚洲va在线va| 欧美性猛交xxxx富婆| 久久精品黄色| 精品日韩欧美| 一个色妞综合视频在线观看| 欧美电影网站| 国产精品日韩二区| 亚洲精品视频一区| 日韩在线短视频| 鲁丝片一区二区三区| 一级女性全黄久久生活片免费| 欧美黑人粗大| 九九九九精品| 亚洲国产精品影院| 欧美第一在线视频| 中国成人在线视频| 欧美午夜在线观看| 日韩丝袜视频| 缅甸午夜性猛交xxxx| 精品国产伦一区二区三区观看说明| 黄色免费福利视频| 欧美日本国产视频| 免费电影视频在线看| 国产精品久久久久久av福利| 国产高清成人在线| 免费观看在线黄色网| 国产精品久久久久久久app| www.亚洲在线| 丝袜老师在线| 日本视频一区在线观看| 色老头久久综合| 国产影视一区| 亚洲 欧美 另类人妖| 中国日韩欧美久久久久久久久| 伊人久久婷婷| 免费在线观看污视频| 国产精品偷伦免费视频观看的| 国产日韩三级在线| 精品美女一区| 蜜臀av色欲a片无码精品一区| 日韩av影视在线| 日本在线不卡视频一二三区| 欧美性videos| 精品国产一区二区三区四区精华 | 日韩一级片免费视频| 日韩午夜小视频| 99国产精品久久久久久久| 国产一级二级三级在线观看| 成人免费淫片视频软件| 96sao精品免费视频观看| 欧美专区福利免费| 啪啪亚洲精品| 大肉大捧一进一出好爽视频| 亚洲色图综合网| 国产一区二区精品久久| 丁香花电影在线观看完整版| 五月天亚洲综合小说网| 精品国产91洋老外米糕| 国产精品久久久亚洲一区| 麻豆视频在线免费观看| 日韩欧美精品久久| 亚洲福利在线观看| 久久91精品久久久久久秒播| 中文av在线全新| 天天夜碰日日摸日日澡性色av| 99久久亚洲精品蜜臀| 官网99热精品| 538在线一区二区精品国产| 亚洲区欧美区| 91cn在线观看| 色女孩综合网| 亚洲欧美制服丝袜| 99re热视频精品| 日韩欧美黄色| 国产在线电影| 亚洲午夜在线观看| 精品国产美女在线| 亚洲品质自拍视频网站| 欧美在线免费| a国产在线视频| 国产无限制自拍| 欧美一二三视频| 欧美色图片你懂的| 国内成人精品2018免费看| 国内精品视频| 久热久精久品这里在线观看| 国产亚洲欧美一区二区三区| 国产丝袜一区视频在线观看| 欧美国产精品一区二区三区| 亚欧美无遮挡hd高清在线视频| 在线免费观看a视频| 无码精品a∨在线观看中文| 国产成人av网址| 欧美日韩日日骚| 99久久久精品免费观看国产蜜| 精品一区在线| 污污视频在线看| 成年人在线看片| 欧美性精品220| 欧美不卡在线视频| 亚洲国产美国国产综合一区二区| 成人国产精品免费网站| 国语自产精品视频在线看8查询8| 九九综合在线| 丰乳肥臀在线| a在线视频观看| 欧美一区二区三区四区在线观看地址| 国产视频99| 欧美大片拔萝卜| 激情婷婷综合| a毛片在线观看| 东京热加勒比无码少妇| 国产在线观看不卡| 亚洲一二三在线| 亚洲图片欧美色图| 国产在线精品免费av| 日韩精品四区| 亚洲成人短视频| 欧美一区二区视频| 欧美性大战久久久久xxx| 成人欧美一区二区三区视频xxx| 这里只有精品久久| 欧美三级乱人伦电影| 欧美国产一区在线| 麻豆久久一区二区| 日韩大片在线播放| 日韩精品一区二区三区av| 三级视频在线| 久久久久久久久久久久91| 亚洲在线不卡| 成人免费午夜电影| 久久6免费高清热精品| 日韩欧美另类在线| 亚洲国产一区二区在线播放| 国产精品123| 一本久道综合久久精品| 精品在线网站观看| 欧美一级大黄| 成人看片免费| 欧美巨乳在线| 国产天堂在线观看| 欧美变态另类刺激| 亚洲精品在线免费| 国产精品一区二区在线观看| 热99在线视频| 欧美成人免费播放| 亚洲国产精品视频在线观看| 欧美体内谢she精2性欧美| 国产精品久久久久毛片软件| 国产在线精品一区在线观看麻豆| 亚洲手机视频| 久久激情电影| 欧美人成在线观看ccc36| 欧美va在线| 欧美人与牲禽动交com| 岛国最新视频免费在线观看| 美女露隐私免费网站| 九九热免费精品视频| 欧美精品久久久久久久自慰| 在线电影看在线一区二区三区| 成人免费福利在线| 国产精品老女人精品视频| 久久久之久亚州精品露出| 日日骚av一区| 中文字幕一精品亚洲无线一区 |