最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

分布式事務(wù)

2022-04-29 13:56 作者:指南針畢業(yè)設(shè)計(jì)  | 我要投稿

1.分布式事務(wù)問(wèn)題


1.1.本地事務(wù)

本地事務(wù),也就是傳統(tǒng)的單機(jī)事務(wù)。在傳統(tǒng)數(shù)據(jù)庫(kù)事務(wù)中,必須要滿足四個(gè)原則:



1.2.分布式事務(wù)

分布式事務(wù),就是指不是在單個(gè)服務(wù)或單個(gè)數(shù)據(jù)庫(kù)架構(gòu)下,產(chǎn)生的事務(wù),例如:



  • 跨數(shù)據(jù)源的分布式事務(wù)




  • 跨服務(wù)的分布式事務(wù)




  • 綜合情況


在數(shù)據(jù)庫(kù)水平拆分、服務(wù)垂直拆分之后,一個(gè)業(yè)務(wù)操作通常要跨多個(gè)數(shù)據(jù)庫(kù)、服務(wù)才能完成。例如電商行業(yè)中比較常見(jiàn)的下單付款案例,包括下面幾個(gè)行為:



  • 創(chuàng)建新訂單




  • 扣減商品庫(kù)存




  • 從用戶賬戶余額扣除金額



完成上面的操作需要訪問(wèn)三個(gè)不同的微服務(wù)和三個(gè)不同的數(shù)據(jù)庫(kù)。



訂單的創(chuàng)建、庫(kù)存的扣減、賬戶扣款在每一個(gè)服務(wù)和數(shù)據(jù)庫(kù)內(nèi)是一個(gè)本地事務(wù),可以保證ACID原則。

但是當(dāng)我們把三件事情看做一個(gè)"業(yè)務(wù)",要滿足保證“業(yè)務(wù)”的原子性,要么所有操作全部成功,要么全部失敗,不允許出現(xiàn)部分成功部分失敗的現(xiàn)象,這就是分布式系統(tǒng)下的事務(wù)了。

此時(shí)ACID難以滿足,這是分布式事務(wù)要解決的問(wèn)題


2.理論基礎(chǔ)

解決分布式事務(wù)問(wèn)題,需要一些分布式系統(tǒng)的基礎(chǔ)知識(shí)作為理論指導(dǎo)。

2.1.CAP定理

1998年,加州大學(xué)的計(jì)算機(jī)科學(xué)家 Eric Brewer 提出,分布式系統(tǒng)有三個(gè)指標(biāo)。



  • Consistency(一致性)




  • Availability(可用性)




  • Partition tolerance (分區(qū)容錯(cuò)性)




它們的第一個(gè)字母分別是 C、A、P。

Eric Brewer 說(shuō),這三個(gè)指標(biāo)不可能同時(shí)做到。這個(gè)結(jié)論就叫做 CAP 定理。


2.1.1.一致性

Consistency(一致性):用戶訪問(wèn)分布式系統(tǒng)中的任意節(jié)點(diǎn),得到的數(shù)據(jù)必須一致。

比如現(xiàn)在包含兩個(gè)節(jié)點(diǎn),其中的初始數(shù)據(jù)是一致的:


?當(dāng)我們修改其中一個(gè)節(jié)點(diǎn)的數(shù)據(jù)時(shí),兩者的數(shù)據(jù)產(chǎn)生了差異:

?要想保住一致性,就必須實(shí)現(xiàn)node01 到 node02的數(shù)據(jù) 同步:

2.1.2.可用性

Availability (可用性):用戶訪問(wèn)集群中的任意健康節(jié)點(diǎn),必須能得到響應(yīng),而不是超時(shí)或拒絕。

如圖,有三個(gè)節(jié)點(diǎn)的集群,訪問(wèn)任何一個(gè)都可以及時(shí)得到響應(yīng):

?當(dāng)有部分節(jié)點(diǎn)因?yàn)榫W(wǎng)絡(luò)故障或其它原因無(wú)法訪問(wèn)時(shí),代表節(jié)點(diǎn)不可用:


2.1.3.分區(qū)容錯(cuò)

Partition(分區(qū)):因?yàn)榫W(wǎng)絡(luò)故障或其它原因?qū)е路植际较到y(tǒng)中的部分節(jié)點(diǎn)與其它節(jié)點(diǎn)失去連接,形成獨(dú)立分區(qū)。



Tolerance(容錯(cuò)):在集群出現(xiàn)分區(qū)時(shí),整個(gè)系統(tǒng)也要持續(xù)對(duì)外提供服務(wù)


2.1.4.矛盾

在分布式系統(tǒng)中,系統(tǒng)間的網(wǎng)絡(luò)不能100%保證健康,一定會(huì)有故障的時(shí)候,而服務(wù)有必須對(duì)外保證服務(wù)。因此Partition Tolerance不可避免。

當(dāng)節(jié)點(diǎn)接收到新的數(shù)據(jù)變更時(shí),就會(huì)出現(xiàn)問(wèn)題了:



如果此時(shí)要保證一致性,就必須等待網(wǎng)絡(luò)恢復(fù),完成數(shù)據(jù)同步后,整個(gè)集群才對(duì)外提供服務(wù),服務(wù)處于阻塞狀態(tài),不可用。

如果此時(shí)要保證可用性,就不能等待網(wǎng)絡(luò)恢復(fù),那node01、node02與node03之間就會(huì)出現(xiàn)數(shù)據(jù)不一致。


也就是說(shuō),在P一定會(huì)出現(xiàn)的情況下,A和C之間只能實(shí)現(xiàn)一個(gè)。


2.2.BASE理論

BASE理論是對(duì)CAP的一種解決思路,包含三個(gè)思想:



  • Basically Available (基本可用):分布式系統(tǒng)在出現(xiàn)故障時(shí),允許損失部分可用性,即保證核心可用。




  • Soft State(軟狀態(tài)):在一定時(shí)間內(nèi),允許出現(xiàn)中間狀態(tài),比如臨時(shí)的不一致?tīng)顟B(tài)。




  • Eventually Consistent(最終一致性):雖然無(wú)法保證強(qiáng)一致性,但是在軟狀態(tài)結(jié)束后,最終達(dá)到數(shù)據(jù)一致。



2.3.解決分布式事務(wù)的思路

分布式事務(wù)最大的問(wèn)題是各個(gè)子事務(wù)的一致性問(wèn)題,因此可以借鑒CAP定理和BASE理論,有兩種解決思路:



  • AP模式:各子事務(wù)分別執(zhí)行和提交,允許出現(xiàn)結(jié)果不一致,然后采用彌補(bǔ)措施恢復(fù)數(shù)據(jù)即可,實(shí)現(xiàn)最終一致。




  • CP模式:各個(gè)子事務(wù)執(zhí)行后互相等待,同時(shí)提交,同時(shí)回滾,達(dá)成強(qiáng)一致。但事務(wù)等待過(guò)程中,處于弱可用狀態(tài)。



但不管是哪一種模式,都需要在子系統(tǒng)事務(wù)之間互相通訊,協(xié)調(diào)事務(wù)狀態(tài),也就是需要一個(gè)事務(wù)協(xié)調(diào)者(TC)


?這里的子系統(tǒng)事務(wù),稱為分支事務(wù);有關(guān)聯(lián)的各個(gè)分支事務(wù)在一起稱為全局事務(wù)


分布式事務(wù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
锡林浩特市| 克东县| 乌苏市| 德清县| 平陆县| 云龙县| 闸北区| 盐亭县| 唐山市| 仙桃市| 金平| 大名县| 武强县| 永安市| 柳江县| 吴旗县| 乌鲁木齐县| 额尔古纳市| 剑阁县| 彰化县| 柘城县| 鲜城| 三河市| 永修县| 盐池县| 夏津县| 麦盖提县| 宁化县| 武定县| 西城区| 大兴区| 临清市| 巩留县| 梅州市| 禹城市| 肇州县| 阿合奇县| 乌什县| 丽江市| 青州市| 平阳县|