成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

分布式事務(wù)及其一致性協(xié)議

Pluser / 2986人閱讀

摘要:六分布式事務(wù)的一致性協(xié)議如果一個(gè)操作涉及多個(gè)分布式節(jié)點(diǎn),為了保證事務(wù)的特性,需要引入一個(gè)協(xié)調(diào)者組件來(lái)統(tǒng)一調(diào)度所有分布式節(jié)點(diǎn)的執(zhí)行邏輯,這些被調(diào)度的分布式節(jié)點(diǎn)被稱為參與者。

一:什么是事務(wù)。

事務(wù)是由一系列對(duì)系統(tǒng)中的數(shù)據(jù)進(jìn)行訪問(wèn)和更新的操作所組成的一個(gè)程序執(zhí)行邏輯單元。狹義上的事務(wù)指的就是數(shù)據(jù)庫(kù)的事務(wù)。

二:事務(wù)(ACID)的特性。

事務(wù)具有四個(gè)特性:
1.一致性(Consistency):事務(wù)的操作需要從一個(gè)一致性狀態(tài)到另一個(gè)一致性狀態(tài)。如果一次事務(wù)中,有些操作更新成功,有些操作更新失敗,這就是不一致的。

2.原子性(Automicity):指事務(wù)是一個(gè)原子操作序列單元。一個(gè)事務(wù)下的操作要么全部執(zhí)行成功,要么全部執(zhí)行不成功。

3.持久性(Durability):指事務(wù)一旦提交,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的變更操作就是永久的。

4.隔離性(Isolation):指不同的事務(wù)操作互不影響。

事務(wù)的隔離級(jí)別:

隔離級(jí)別 特點(diǎn)
讀未提交(read uncommitted) 另一事務(wù)可以看見(jiàn)一個(gè)事務(wù)提交前的所有狀態(tài)。
讀已提交(read committed) 只允許讀取到事務(wù)提交之后的狀態(tài)。
可重復(fù)讀(repeatable read) 只允許讀取到事務(wù)開(kāi)始時(shí)刻的狀態(tài)。
序列化(serializable) 事務(wù)串行執(zhí)行。

關(guān)于讀已提交和可重復(fù)讀的區(qū)別:
(1)讀已提交(又叫不可重復(fù)讀)隔離級(jí)別下,如果事務(wù)A的一個(gè)操作讀取了一條記錄,然后事務(wù)B修改了這條記錄,接著事務(wù)A的另一個(gè)操作再讀取這條記錄的時(shí)候就發(fā)現(xiàn)被修改了。所以對(duì)于讀已提交來(lái)說(shuō),需要注意的是另一個(gè)事務(wù)的更新或是刪除操作。

(2)可重復(fù)讀隔離級(jí)別下,如果事務(wù)A的一個(gè)操作讀取了一張表的記錄,事務(wù)B不能對(duì)這張表的數(shù)據(jù)進(jìn)行刪除或是更新,這樣就保障了可重復(fù)讀,但是事務(wù)B是可以對(duì)這張表進(jìn)行插入操作的,事務(wù)B向這張表插入一條記錄后,事務(wù)A的另一個(gè)操作再讀取這張表的數(shù)據(jù),就發(fā)現(xiàn)多了一條記錄,這就是幻讀的產(chǎn)生。所以對(duì)于可重復(fù)讀來(lái)說(shuō),需要注意的是另一個(gè)事務(wù)的新增操作。

三:什么是分布式系統(tǒng)。

首先了解下從集中式到分布式的發(fā)展歷程

20世紀(jì)60年代,人類發(fā)明了大型主機(jī)。大型主機(jī)具有超強(qiáng)的計(jì)算能力和I/O處理能力,在穩(wěn)定性和安全性上也有良好的表現(xiàn),因此集中式的計(jì)算機(jī)架構(gòu)也就流行了起來(lái)。集中式系統(tǒng)是將一臺(tái)或是幾臺(tái)計(jì)算機(jī)作為中心節(jié)點(diǎn),所有的操作運(yùn)算和數(shù)據(jù)的存儲(chǔ)都是中心節(jié)點(diǎn)完成。一方面是大型主機(jī)價(jià)格昂貴,技術(shù)要求比較高,對(duì)主機(jī)進(jìn)行擴(kuò)容困難,一臺(tái)主機(jī)不可用將造成整個(gè)系統(tǒng)不可用,另一方面是小型機(jī)和PC的發(fā)展,集中式架構(gòu)逐步退出歷史舞臺(tái),分布式架構(gòu)走進(jìn)人們的視野。

分布式系統(tǒng)指的是將一個(gè)硬件或是軟件組件分布在不同的網(wǎng)絡(luò)計(jì)算機(jī)上,彼此之間通過(guò)消息傳遞進(jìn)行通信和協(xié)調(diào)的系統(tǒng)。

四:分布式系統(tǒng)的經(jīng)典理論。

1.CAP理論
CAP指的是Consistency(一致性)、Availability(可用性)和Partition tolerance(分區(qū)容錯(cuò)性)。

(1)一致性:指數(shù)據(jù)在多個(gè)副本之間能夠保持一致的特性。
有以下三種一致性級(jí)別:
a.強(qiáng)一致性:要求對(duì)系統(tǒng)數(shù)據(jù)的修改可以立刻讀取,用戶體驗(yàn)性最好。
b.弱一致性:不保證什么時(shí)候能達(dá)到一致性,但是盡可能保證在某個(gè)時(shí)間級(jí)別后,數(shù)據(jù)達(dá)到一致性。
c.最終一致性:弱一致性的一個(gè)特例,系統(tǒng)會(huì)保證在一定時(shí)間內(nèi),能夠達(dá)到一個(gè)數(shù)據(jù)一致的狀態(tài)。

(2)可用性:指系統(tǒng)提供的服務(wù)需要一直處于可用狀態(tài),對(duì)于用戶的每一個(gè)操作請(qǐng)求總是能夠在有限的時(shí)間內(nèi)返回結(jié)果。

(3)分區(qū)容錯(cuò)性:分布式系統(tǒng)在遇到任何網(wǎng)絡(luò)分區(qū)故障時(shí),都需要能夠保證一致性和可用性,除非整個(gè)網(wǎng)絡(luò)都發(fā)生了故障。

2.BASE理論

BASE理論指的是Basically Avaliable(基本可用)、Soft state(軟狀態(tài))和Eventually consistent(最終一致性)。

解釋一下軟狀態(tài),指的是允許系統(tǒng)中的數(shù)據(jù)存在中間狀態(tài),并認(rèn)為該中間狀態(tài)的存在不會(huì)影響系統(tǒng)的整體可用性。也就是允許不同數(shù)據(jù)副本的數(shù)據(jù)同步允許延遲。

五:什么是分布式事務(wù)

現(xiàn)在小明想要從銀行A轉(zhuǎn)500塊錢(qián)到銀行B,因?yàn)閮杉也煌你y行,各自有自己的系統(tǒng),自己的數(shù)據(jù)庫(kù),銀行A先在小明的賬戶上扣除500塊錢(qián),然后銀行B準(zhǔn)備在小明的賬戶上加上500塊錢(qián),然而網(wǎng)絡(luò)故障了,銀行B的操作沒(méi)有成功,這時(shí)候該怎么辦呢?銀行B怎么告訴銀行A自己操作沒(méi)成功,讓銀行A進(jìn)行操作回滾呢?

分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器,資源管理器以及事務(wù)管理器分別位于分布式系統(tǒng)的不同節(jié)點(diǎn)上。一個(gè)分布式事務(wù)會(huì)涉及多個(gè)數(shù)據(jù)源或是業(yè)務(wù)系統(tǒng)的操作。

六:分布式事務(wù)的一致性協(xié)議

如果一個(gè)操作涉及多個(gè)分布式節(jié)點(diǎn),為了保證事務(wù)的ACID特性,需要引入一個(gè)“協(xié)調(diào)者”組件來(lái)統(tǒng)一調(diào)度所有分布式節(jié)點(diǎn)的執(zhí)行邏輯,這些被調(diào)度的分布式節(jié)點(diǎn)被稱為“參與者”。協(xié)調(diào)者負(fù)責(zé)調(diào)度參與者的行為,并最終決定這些參與者是否真正地提交事務(wù)。

1.二階段提交協(xié)議(2PC:Two-Phase Commit)

缺點(diǎn):
(1)各個(gè)參與者需要等待其他參與者的響應(yīng)。
(2)如果協(xié)調(diào)者出現(xiàn)故障,其他參與者會(huì)一直鎖定資源,無(wú)法完成事務(wù)操作。
(3)可能會(huì)因?yàn)榫W(wǎng)絡(luò)原因?qū)е轮挥胁糠謪⑴c者收到commit請(qǐng)求,部分參與者沒(méi)有收到commit請(qǐng)求而出現(xiàn)數(shù)據(jù)不一致現(xiàn)象。
(4)協(xié)調(diào)者可能因?yàn)榫W(wǎng)絡(luò)故障無(wú)法收到全部參與者的響應(yīng)信息,只能依靠自身的超時(shí)機(jī)制決定是否中斷事務(wù)。

2.三階段提交協(xié)議(3PC:Three-Phase Commit)

過(guò)程:

參考資料:
《從Paxos到ZooKeeper分布式一致性原理與實(shí)踐》
不可重復(fù)讀和幻讀的區(qū)別

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71436.html

相關(guān)文章

  • 從懵逼到再入門(mén)——JavaEE完整體系架構(gòu)

    摘要:軟件開(kāi)發(fā)體系架構(gòu)兩層架構(gòu)傳統(tǒng)的客戶服務(wù)器系統(tǒng)僅只簡(jiǎn)單地基于兩層體系來(lái)構(gòu)建,即客戶端前臺(tái)和企業(yè)信息系統(tǒng)后臺(tái),沒(méi)有任何中間件,業(yè)務(wù)邏輯層與表示層或數(shù)據(jù)層混在一起。 showImg(https://segmentfault.com/img/remote/1460000007090113); 理想的建筑師應(yīng)該既是文學(xué)家又是數(shù)字家,他還應(yīng)通曉歷史,熱衷于哲學(xué)研究,精通音樂(lè),懂得醫(yī)藥知識(shí),具有法學(xué)...

    ZweiZhao 評(píng)論0 收藏0
  • 后端經(jīng)驗(yàn)

    摘要:在結(jié)構(gòu)上引入了頭結(jié)點(diǎn)和尾節(jié)點(diǎn),他們分別指向隊(duì)列的頭和尾,嘗試獲取鎖入隊(duì)服務(wù)教程在它提出十多年后的今天,已經(jīng)成為最重要的應(yīng)用技術(shù)之一。隨著編程經(jīng)驗(yàn)的日積月累,越來(lái)越感覺(jué)到了解虛擬機(jī)相關(guān)要領(lǐng)的重要性。 JVM 源碼分析之 Jstat 工具原理完全解讀 http://click.aliyun.com/m/8315/ JVM 源碼分析之 Jstat 工具原理完全解讀 http:...

    i_garfileo 評(píng)論0 收藏0
  • 為Java程序員金三銀四精心挑選的300余道Java面試題與答案

    摘要:為程序員金三銀四精心挑選的余道面試題與答案,歡迎大家向我推薦你在面試過(guò)程中遇到的問(wèn)題我會(huì)把大家推薦的問(wèn)題添加到下面的常用面試題清單中供大家參考。 為Java程序員金三銀四精心挑選的300余道Java面試題與答案,歡迎大家向我推薦你在面試過(guò)程中遇到的問(wèn)題,我會(huì)把大家推薦的問(wèn)題添加到下面的常用面試題清單中供大家參考。 前兩天寫(xiě)的以下博客,大家比較認(rèn)可,熱度不錯(cuò),希望可以幫到準(zhǔn)備或者正在參加...

    tomorrowwu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<