分布式事務學習

基本概念

CAP理論

一個分布式系統(tǒng)不可能同時滿足一致性(C:Consistency)间聊、可用性(A:Availability)和分區(qū)容錯性(P:Partition tolerance)這三個基本需求躬贡,最多只能同時滿足其中兩項

  • 一致性 :分布式環(huán)境下氢妈,一致性是指數(shù)據(jù)在多個副本之間能否保持一致的特性
  • 可用性 :可用性是指系統(tǒng)提供的服務必須一直處于可用的狀態(tài),對于用戶的每一個操作請求總是能夠在有限的時間內(nèi)返回結(jié)果
  • 分區(qū)容錯性:分布式系統(tǒng)在遇到任何網(wǎng)絡分區(qū)故障的時候仙辟,仍然需要能夠保證對外提供滿足一致性和可用性的服務同波,除非是整個網(wǎng)絡環(huán)境都發(fā)生了故障

BASE理論

BASE是Basically Available(基本可用)、Soft state(軟狀態(tài))和Eventually consistent(最終一致性)三個短語的縮寫

  • 基本可用:基本可用是指分布式系統(tǒng)在出現(xiàn)不可預知故障的時候叠国,允許損失部分可用性,比如雙十一大促淘寶修改地址的功能沒了戴尸。
  • 軟狀態(tài):軟狀態(tài)指允許系統(tǒng)中的數(shù)據(jù)存在中間狀態(tài)粟焊,并認為該中間狀態(tài)的存在不會影響系統(tǒng)的整體可用性,即允許系統(tǒng)在不同節(jié)點的數(shù)據(jù)副本之間進行數(shù)據(jù)同步的過程存在延時孙蒙。
  • 最終一致性:最終一致性強調(diào)的是所有的數(shù)據(jù)副本项棠,在經(jīng)過一段時間的同步之后,最終都能夠達到一個一致的狀態(tài)挎峦。

ACID

數(shù)據(jù)庫事務正確執(zhí)行的四個基本要素的縮寫香追。包含:原子性(Atomicity)、一致性(Consistency)坦胶、隔離性(Isolation)透典、持久性(Durability)。一個支持事務(Transaction)的數(shù)據(jù)庫顿苇,必須要具有這四種特性

酸堿平衡

ACID能夠保證事務的強一致性峭咒,即數(shù)據(jù)是實時一致的。這在本地事務中是沒有問題的纪岁,在分布式事務中凑队,強一致性會極大影響分布式系統(tǒng)的性能,因此分布式系統(tǒng)中遵循BASE理論即可幔翰。但分布式系統(tǒng)的不同業(yè)務場景對一致性的要求也不同漩氨。如交易場景下,就要求強一致性遗增,此時就需要遵循ACID理論叫惊,而在注冊成功后發(fā)送短信驗證碼等場景下,并不需要實時一致贡定,因此遵循BASE理論即可赋访。因此要根據(jù)具體業(yè)務場景,在ACID和BASE之間尋求平衡。

分布式事務協(xié)議

XA規(guī)范
二階提交協(xié)議和三階提交協(xié)議就是根據(jù)這一思想衍生出來的蚓耽∏可以說二階段提交其實就是實現(xiàn)XA分布式事務的關(guān)鍵(確切地說:兩階段提交主要保證了分布式事務的原子性:即所有結(jié)點要么全做要么全不做)

2PC

二階段提交協(xié)議
即將事務的提交過程分為兩個階段來進行處理:
準備階段和提交階段
細致來說第一步投票,當所有事務參與者投票通過步悠,則進入第二步签杈,否則就回滾所有事務,第二步鼎兽,提交所有 commit
(事務的發(fā)起者稱協(xié)調(diào)者答姥,事務的執(zhí)行者稱參與者)

3PC

引入超時機制。同時在協(xié)調(diào)者和參與者中都引入超時機制谚咬。
在第一階段和第二階段中插入一個準備階段鹦付。保證了在最后提交階段之前各參與節(jié)點的狀態(tài)是一致的

分布式事務的解決方案

  • 全局消息
  • 基于可靠消息服務的分布式事務
  • TCC
  • 最大努力通知

全局事務(DTP模型)

全局事務基于DTP模型實現(xiàn)。DTP是由X/Open組織提出的一種分布式事務模型——X/Open Distributed Transaction Processing Reference Model择卦。它規(guī)定了要實現(xiàn)分布式事務敲长,需要三種角色:

  • AP:Application 應用系統(tǒng)
  • TM:Transaction Manager 事務管理器
  • RM:Resource Manager 資源管理器

基于可靠消息服務的分布式事務

這種實現(xiàn)分布式事務的方式需要通過消息中間件來實現(xiàn)。(事務消息機制)
消息中間件扮演者分布式事務協(xié)調(diào)者的角色秉继。
系統(tǒng)A完成任務A后祈噪,到任務B執(zhí)行完成之間,會存在一定的時間差尚辑。在這個時間差內(nèi)辑鲤,整個系統(tǒng)處于數(shù)據(jù)不一致的狀態(tài),但這短暫的不一致性是可以接受的杠茬,因為經(jīng)過短暫的時間后月褥,系統(tǒng)又可以保持數(shù)據(jù)一致性,滿足BASE理論澈蝙。
具體來講
如果類似于 kafka 的消息吓坚,本身有事務消息


image.png

如果在 commit 失敗了,應該消息系統(tǒng)又一次主動檢查的過程


image.png

其他消息系統(tǒng)利用延遲消息完成


image.png

最大努力通知

建立消息重發(fā)機制灯荧,不斷重試

TCC

TCC 補償事務 將事務提交分為 Try - Confirm - Cancel 3個操作礁击。

  • Try:預留業(yè)務資源/數(shù)據(jù)效驗
  • Confirm:確認執(zhí)行業(yè)務操作
  • Cancel:取消執(zhí)行業(yè)務操作

參考文獻

https://blog.csdn.net/u010425776/article/details/79516298
https://help.aliyun.com/document_detail/34480.html?spm=a2c4g.11186623.6.650.1811425b0G5yKZ

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逗载,隨后出現(xiàn)的幾起案子哆窿,更是在濱河造成了極大的恐慌,老刑警劉巖厉斟,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挚躯,死亡現(xiàn)場離奇詭異,居然都是意外死亡擦秽,警方通過查閱死者的電腦和手機码荔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門漩勤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缩搅,你說我怎么就攤上這事越败。” “怎么了硼瓣?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵究飞,是天一觀的道長。 經(jīng)常有香客問我堂鲤,道長亿傅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任瘟栖,我火速辦了婚禮葵擎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慢宗。我一直安慰自己坪蚁,他們只是感情好,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布镜沽。 她就那樣靜靜地躺著,像睡著了一般贱田。 火紅的嫁衣襯著肌膚如雪缅茉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天男摧,我揣著相機與錄音蔬墩,去河邊找鬼。 笑死耗拓,一個胖子當著我的面吹牛拇颅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乔询,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼樟插,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了竿刁?” 一聲冷哼從身側(cè)響起黄锤,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎食拜,沒想到半個月后鸵熟,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡负甸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年流强,在試婚紗的時候發(fā)現(xiàn)自己被綠了痹届。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡打月,死狀恐怖队腐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情僵控,我是刑警寧澤香到,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站报破,受9級特大地震影響悠就,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜充易,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一梗脾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盹靴,春花似錦炸茧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至改备,卻和暖如春控漠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悬钳。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工盐捷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人默勾。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓碉渡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親母剥。 傳聞我的和親對象是個殘疾皇子滞诺,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

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

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評論 2 89
  • 1 背景 一致性是一個抽象的、具有多重含義的計算機術(shù)語媳搪,在不同應用場景下铭段,有不同的定義和含義。在傳統(tǒng)的IT時代秦爆,一...
    新強吖閱讀 453評論 0 2
  • 1序愚、事務簡介 ? 事務(Transaction)是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項的一個程序執(zhí)行單元(u...
    逗逼程序員閱讀 679評論 0 1
  • 一. 事務 1.1 什么是事務 數(shù)據(jù)庫事務(簡稱:事務,Transaction)是指數(shù)據(jù)庫執(zhí)行過程中的一個邏輯單位...
    Java小鋪閱讀 578評論 0 3
  • 小玫瑰花枯萎了 淚水打濕的花蕊 泛起一圈圈的紫黑 曾經(jīng)迎風挺拔的花朵 一瓣一瓣無奈地掉落 小王子的心 跟著飄飄忽忽...
    回家燒茶閱讀 452評論 4 20