分布式事務(wù)

分布式事務(wù)

2PC

一階段:
事務(wù)的協(xié)調(diào)者向所有的事務(wù)參與者發(fā)起prepare請(qǐng)求附帽,參與者接收到請(qǐng)求之后,執(zhí)行本地事務(wù)更新井誉,但是暫時(shí)不提交蕉扮。返回完成消息給事務(wù)協(xié)調(diào)者,
事務(wù)協(xié)調(diào)者受到消息之后開(kāi)啟二階段颗圣。
二階段:
事務(wù)協(xié)調(diào)者收到所有的參與者的完成消息之后喳钟,通過(guò)所有的參與者Commit本地事務(wù)屁使,事務(wù)參與者各種提交本地事務(wù),釋放資源奔则,向事務(wù)協(xié)調(diào)者反饋完成
消息蛮寂。都全部完成之后,整個(gè)分布式事務(wù)完成易茬。酬蹋。

存在問(wèn)題:
1.性能問(wèn)題
XA協(xié)議追求強(qiáng)一致性,只有所有的節(jié)點(diǎn)準(zhǔn)備完成才會(huì)通知提交抽莱,性能很差范抓。
2.協(xié)調(diào)者單點(diǎn)故障
事務(wù)協(xié)調(diào)者節(jié)點(diǎn)如果掛掉之后,整個(gè)事務(wù)就會(huì)出錯(cuò)
3.數(shù)據(jù)不一致問(wèn)題
在二階段中岸蜗,如果因?yàn)榫W(wǎng)絡(luò)問(wèn)題尉咕,一些事務(wù)的參與者沒(méi)有收到commit消息,一些事務(wù)收到提交璃岳,會(huì)導(dǎo)致節(jié)點(diǎn)之間的數(shù)據(jù)不一致問(wèn)題

3PC

三階段CanCommit
事務(wù)參與者一直沒(méi)有收到commit提交消息年缎,引入CanCommit超時(shí)機(jī)制,本地會(huì)自動(dòng)提交铃慷。解決了2PC的協(xié)調(diào)者單點(diǎn)故障問(wèn)題单芜,但是還是沒(méi)有解決性能和不一致問(wèn)題。

TCC

try
事務(wù)提交前的檢查犁柜,預(yù)留好資源
commit
確定執(zhí)行業(yè)務(wù)操作洲鸠,對(duì)try階段預(yù)留的資源正式執(zhí)行。
cancel
取消執(zhí)行業(yè)務(wù)操作馋缅,對(duì)try階段預(yù)留的資源釋放扒腕。

RocketMQ事務(wù)

1.消息發(fā)送方先發(fā)送一個(gè)半消息。此時(shí)消費(fèi)端不能消費(fèi)
2.發(fā)送成功之后萤悴,執(zhí)行本地事務(wù)
3.本地事務(wù)執(zhí)行成功之后瘾腰,消息發(fā)送方會(huì)提交半消息,此時(shí)消費(fèi)端可以消息覆履。

問(wèn)題:如果發(fā)送預(yù)備消息成功蹋盆,執(zhí)行本地事務(wù)成功,但發(fā)送確認(rèn)消息失斚跞栖雾;這個(gè)就有問(wèn)題了,因?yàn)橛脩鬉扣款成功了伟众,
但加錢(qián)業(yè)務(wù)沒(méi)有訂閱到確認(rèn)消息析藕,無(wú)法加錢(qián)。這里出現(xiàn)了數(shù)據(jù)不一致赂鲤。

MQ提供狀態(tài)會(huì)查機(jī)制噪径,會(huì)定時(shí)遍歷commitlog中的半消息柱恤,可以在會(huì)查的時(shí)候查詢本地事務(wù)是否提交成功,如果成功則提交半消息找爱,消費(fèi)端可以消費(fèi)梗顺。

Seata

AT模式
執(zhí)行流程
1.TM向TC申請(qǐng)開(kāi)啟一個(gè)全局事務(wù),TC返回一個(gè)唯一的全局事務(wù)XID
2.RM向TC注冊(cè)分支事務(wù)车摄,并把它納入到全局事務(wù)XID管理寺谤,返回分支事務(wù)branceId
3.RM執(zhí)行本地事務(wù),操作數(shù)據(jù)庫(kù)吮播,記錄數(shù)據(jù)操作前后的鏡像变屁,連同XID branceId 記錄到undo_log表中
4.RM執(zhí)行成功后遠(yuǎn)程調(diào)用兩一個(gè)分支事務(wù),傳播XID到另一個(gè)分支事務(wù)
5.另一個(gè)分支事務(wù)繼續(xù)向TC注冊(cè)本地事務(wù),加入到XID對(duì)應(yīng)的全局事務(wù)中意狠,返回分支事務(wù)branchId
6.執(zhí)行本地事務(wù)粟关,操作數(shù)據(jù)庫(kù),記錄數(shù)據(jù)操作前后的鏡像环戈,連同XID branchId 記錄到undo_log表中
7.全局事務(wù)鏈路處理完成之后闷板,TM向TC發(fā)起全局事務(wù)的提交或回滾
8.TC管理所有的分支事務(wù),決定是否需要回滾

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末院塞,一起剝皮案震驚了整個(gè)濱河市遮晚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拦止,老刑警劉巖县遣,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異汹族,居然都是意外死亡萧求,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)顶瞒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)饭聚,“玉大人,你說(shuō)我怎么就攤上這事搁拙。” “怎么了法绵?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵箕速,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我朋譬,道長(zhǎng)盐茎,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任徙赢,我火速辦了婚禮字柠,結(jié)果婚禮上探越,老公的妹妹穿的比我還像新娘。我一直安慰自己窑业,他們只是感情好钦幔,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著常柄,像睡著了一般鲤氢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上西潘,一...
    開(kāi)封第一講書(shū)人閱讀 52,268評(píng)論 1 309
  • 那天卷玉,我揣著相機(jī)與錄音,去河邊找鬼喷市。 笑死相种,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的品姓。 我是一名探鬼主播寝并,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缭黔!你這毒婦竟也來(lái)了食茎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤馏谨,失蹤者是張志新(化名)和其女友劉穎别渔,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體惧互,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哎媚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喊儡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拨与。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖艾猜,靈堂內(nèi)的尸體忽然破棺而出买喧,到底是詐尸還是另有隱情,我是刑警寧澤匆赃,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布淤毛,位于F島的核電站,受9級(jí)特大地震影響算柳,放射性物質(zhì)發(fā)生泄漏低淡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蔗蹋。 院中可真熱鬧何荚,春花似錦、人聲如沸猪杭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胁孙。三九已至唠倦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涮较,已是汗流浹背稠鼻。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狂票,地道東北人候齿。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像闺属,于是被迫代替她去往敵國(guó)和親慌盯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 分布式事務(wù)解決方案 對(duì)于剛剛接觸分布式系統(tǒng)的伙伴來(lái)說(shuō)掂器,分布式看起來(lái)非常高大上亚皂、深不可測(cè)。目前已有Dubbo国瓮、Spr...
    wxdfun閱讀 726評(píng)論 0 0
  • 分布式事務(wù)解決的用戶最本質(zhì)訴求是什么灭必?數(shù)據(jù)一致。 大中企業(yè)有一個(gè)共同的訴求是數(shù)據(jù)一致乃摹,幾乎覆蓋到各個(gè)行業(yè)禁漓。 比如說(shuō)...
    脆皮雞大蝦閱讀 267評(píng)論 0 0
  • 現(xiàn)如今國(guó)內(nèi)互聯(lián)網(wǎng)大廠分布式系統(tǒng)和微服務(wù)架構(gòu)盛行,C端一個(gè)簡(jiǎn)單操作可能是由多個(gè)后端服務(wù)和數(shù)據(jù)庫(kù)實(shí)例協(xié)同完成的孵睬。在一致...
    小星的java學(xué)習(xí)筆記閱讀 1,271評(píng)論 0 0
  • 推薦指數(shù): 6.0 書(shū)籍主旨關(guān)鍵詞:特權(quán)播歼、焦點(diǎn)、注意力掰读、語(yǔ)言聯(lián)想秘狞、情景聯(lián)想 觀點(diǎn): 1.統(tǒng)計(jì)學(xué)現(xiàn)在叫數(shù)據(jù)分析,社會(huì)...
    Jenaral閱讀 5,724評(píng)論 0 5
  • 城空了,有樹(shù)長(zhǎng)出來(lái) 我的城死了 鑄起它的人雾狈,殺死它的人 不愿因?yàn)檫@件事而驕傲 一座城的終結(jié) 永遠(yuǎn)因?yàn)榻K結(jié)這件事而顯...
    于十六閱讀 2,862評(píng)論 6 17