2PC, 3PC 分布式提交協(xié)議簡述

2PC, 3PC 分布式提交協(xié)議簡述

事務(wù)

這里主要是指狹義一點(diǎn)的事務(wù)即數(shù)據(jù)庫事務(wù),事務(wù)一般含有以下一些特點(diǎn)

原子性(Atomicity): 事務(wù)全部被執(zhí)行或不被執(zhí)行

一致性(Consistency):事務(wù)在執(zhí)行事務(wù)前后纳猫,數(shù)據(jù)庫處于一致性狀態(tài)

隔離性(Isolation):指在并發(fā)環(huán)境中谈截,并發(fā)的事務(wù)是相互隔離的,一個事務(wù)的執(zhí)行不能被其他事務(wù)所打斷

持久性(Durablity):事務(wù)一旦提交毙死,則對數(shù)據(jù)庫狀態(tài)的變更是永久的

分布式事務(wù)

指的是事務(wù)的參與者扼倘,支持者的服務(wù)器除呵,資源服務(wù)器以及事務(wù)管理器分別位于分布式系統(tǒng)的不同幾點(diǎn)之上。

CAP定理

一個分布式系統(tǒng)不可能同時滿足一致性(C)纠拔,可用性(A)稠诲,分區(qū)容錯性(P)

一致性:指的是數(shù)據(jù)在多個副本中是否能夠保持一致的特性

可用性:系統(tǒng)提供的服務(wù)必須處于可用的狀態(tài)诡曙,對于用戶的每一個請求總要在有限的時間內(nèi)返回結(jié)果

分區(qū)容錯性:分布式系統(tǒng)在遇到任何網(wǎng)絡(luò)分區(qū)故障的時候,仍然需要能夠保證對外提供滿足一致性和可用性的服務(wù)

BASE理論

基本可用 (Basically Avaliable):在分布式系統(tǒng)中出現(xiàn)不可預(yù)知故障的時候劝萤,允許損失部分可用性

弱狀態(tài) (Soft state):允許系統(tǒng)中的數(shù)據(jù)存在中間狀態(tài)荠雕,并認(rèn)為該中間狀態(tài)不會印象系統(tǒng)的整體可用性

最終一致性 (Eventually consistent):系統(tǒng)中所有的副本,在經(jīng)過一段時間的同步后炸卑,最終能夠達(dá)到一個一致的狀態(tài)。五種變種:因果一致性嘱蛋、讀己之所寫、會話一致性洒敏、單調(diào)一致性、單調(diào)讀一致性

2PC與3PC

在分布式系統(tǒng)中郭毕,每一個機(jī)器節(jié)點(diǎn)雖然都能夠明確知道自己在進(jìn)行事務(wù)操作過程中的結(jié)果是成功還是失敗显押,但是卻無法直接獲取到其他分布式節(jié)點(diǎn)的操作結(jié)果

2PC 二階段提交

階段一:提交事務(wù)請求

事務(wù)詢問

協(xié)調(diào)者向所有的參與制發(fā)送事務(wù)內(nèi)容傻挂,詢問是否可以執(zhí)行事務(wù)提交操作金拒,并開始等待各參與者的響應(yīng)

執(zhí)行事務(wù)

各參與者節(jié)點(diǎn)執(zhí)行事務(wù)操作绪抛,并將Undo和Redo信息記入事務(wù)日志中

各參與者向協(xié)調(diào)者反饋事務(wù)詢問的響應(yīng)

如果參與者成功執(zhí)行了事務(wù)操作,那么就反饋給協(xié)調(diào)者Yes響應(yīng)害驹,表示事務(wù)可以執(zhí)行蛤育,反之,反饋No響應(yīng)

階段二:執(zhí)行事務(wù)提交

協(xié)調(diào)者根據(jù)參與者的反饋情況決定是否進(jìn)行事務(wù)提交操作底洗。有兩種可能性

執(zhí)行事務(wù)提交

如果協(xié)調(diào)者從所有的參與者獲得的反饋都是yes響應(yīng)咕娄,那么就會執(zhí)行事務(wù)提交

發(fā)送提交請求

協(xié)調(diào)者向所有參與者節(jié)點(diǎn)發(fā)出Commit請求

事務(wù)提交

參與者接受到Commit請求后圣勒,會正式執(zhí)行事務(wù)提交操作,并在完成提交之后釋放在整個事務(wù)執(zhí)行期間占 用的事務(wù)資源

完成事務(wù)

協(xié)調(diào)者接收到所有參與者反饋的Ack消息后挚歧,完成事務(wù)

中斷事務(wù)

任何一個參與者向協(xié)調(diào)在這反饋了No響應(yīng)吁峻,或者在等待超時后滑负,協(xié)調(diào)者尚無法接收到所有參與者的反饋響應(yīng),那么就會中斷事務(wù)

發(fā)送回滾請求

協(xié)調(diào)者向所有參與者節(jié)點(diǎn)發(fā)出Rollback請求

事務(wù)回滾

參與者接受到Rollback請求后矮慕,會利用其在階段一種記錄的Undo信息來執(zhí)行事務(wù)回滾操作帮匾,并在完成回滾后釋放在整個事務(wù)執(zhí)行期間占用的資源

反饋事務(wù)回滾結(jié)果

參與者在完成事務(wù)回滾之后痴鳄,向協(xié)調(diào)者發(fā)送Ack消息

中斷事務(wù)

協(xié)調(diào)者接收到所有參與者反饋的Ack消息后瘟斜,完成事務(wù)中斷

優(yōu)缺點(diǎn):

優(yōu)點(diǎn):原理簡單,實(shí)現(xiàn)方便

缺點(diǎn): 同步阻塞夏跷,單點(diǎn)問題,腦裂(數(shù)據(jù)不一致)槽华,太過保守

同步阻塞(所謂‘同步’,意思是在發(fā)出一個信息之后,等待有回應(yīng)才返回趟妥,同理可推‘異步’猫态;而阻塞是指程序在等待消息結(jié)果時的狀態(tài),消息結(jié)果沒返回披摄,那么當(dāng)前線程就會被吊起,同理可推‘非阻塞’)

在二階段提交的執(zhí)行階段疚膊,所有參與該事務(wù)的操作的邏輯都處于阻塞狀態(tài)

單點(diǎn)問題

在二階段中,如果協(xié)調(diào)者出現(xiàn)問題灌砖,那么整個流程將無法運(yùn)轉(zhuǎn)傀蚌。更為嚴(yán)重的是善炫,如果協(xié)調(diào)者是在階段而中出現(xiàn)問題撩幽,那么其他事務(wù)參與者將一直處于鎖定事務(wù)資源的狀態(tài)中窜醉。

數(shù)據(jù)不一致

在執(zhí)行事務(wù)提交的時候,出現(xiàn)了局部網(wǎng)絡(luò)異骋兆唬或者協(xié)調(diào)者在尚未發(fā)送完Commit請求之前吱聲發(fā)生了崩潰榨惰,導(dǎo)致只有部分參與者收到了Commit請求。一些參與者完成事務(wù)的提交擂涛,一些無法進(jìn)行事務(wù)的提交读串,整個系統(tǒng)出現(xiàn)不一致情況

太過保守

如果某些參與者出現(xiàn)故障而導(dǎo)致協(xié)調(diào)者出現(xiàn)無法獲取所有的響應(yīng)信息聊记,那么協(xié)調(diào)者就可能會依據(jù)超時機(jī)制判斷是否需要中斷事務(wù)。缺少了容錯機(jī)制恢暖,一個節(jié)點(diǎn)錯誤導(dǎo)致整個事務(wù)失敗

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末排监,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子杰捂,更是在濱河造成了極大的恐慌舆床,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嫁佳,死亡現(xiàn)場離奇詭異挨队,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蒿往,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進(jìn)店門盛垦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瓤漏,你說我怎么就攤上這事腾夯。” “怎么了蔬充?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵蝶俱,是天一觀的道長。 經(jīng)常有香客問我饥漫,道長榨呆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任庸队,我火速辦了婚禮积蜻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘皿哨。我一直安慰自己浅侨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布证膨。 她就那樣靜靜地躺著如输,像睡著了一般。 火紅的嫁衣襯著肌膚如雪央勒。 梳的紋絲不亂的頭發(fā)上不见,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機(jī)與錄音崔步,去河邊找鬼稳吮。 笑死,一個胖子當(dāng)著我的面吹牛井濒,可吹牛的內(nèi)容都是我干的灶似。 我是一名探鬼主播列林,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼酪惭!你這毒婦竟也來了希痴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤春感,失蹤者是張志新(化名)和其女友劉穎砌创,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鲫懒,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嫩实,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了窥岩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甲献。...
    茶點(diǎn)故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颂翼,靈堂內(nèi)的尸體忽然破棺而出竟纳,到底是詐尸還是另有隱情,我是刑警寧澤疚鲤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站缘挑,受9級特大地震影響集歇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜语淘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一诲宇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惶翻,春花似錦姑蓝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颅筋,卻和暖如春宙暇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背议泵。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工占贫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人先口。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓型奥,卻偏偏與公主長得像瞳收,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子厢汹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評論 2 359

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