自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

四大分布式事務(wù)方案詳解

云計(jì)算 分布式
分布式事務(wù)是指涉及多個(gè)參與者,通常是不同的計(jì)算機(jī)節(jié)點(diǎn)或服務(wù)的事務(wù)操作,因此需要跨多個(gè)節(jié)點(diǎn)執(zhí)行事務(wù)操作。

分布式事務(wù)在分布式系統(tǒng)經(jīng)常遇見,也是大廠經(jīng)常考察的內(nèi)容,下面我就重點(diǎn)詳解四大主流分布式事務(wù)方案@mikechen

分布式事務(wù)

分布式事務(wù)是指涉及多個(gè)參與者,通常是不同的計(jì)算機(jī)節(jié)點(diǎn)或服務(wù)的事務(wù)操作,因此需要跨多個(gè)節(jié)點(diǎn)執(zhí)行事務(wù)操作。

如下圖所示:

圖片圖片

分布式事務(wù)需要確保所有相關(guān)操作要么全部成功執(zhí)行,要么全部回滾,以維護(hù)數(shù)據(jù)的一致性和可靠性。

分布式事務(wù)解決方案

常見的分布式事務(wù)解決方案,主要包含有以下四種:

兩階段提交協(xié)議

兩階段提交協(xié)議,Two-Phase Commit,簡(jiǎn)稱是2PC,該協(xié)議包括:準(zhǔn)備和提交兩個(gè)階段。

如下圖所示:

圖片圖片

1.準(zhǔn)備階段

協(xié)調(diào)者向所有參與者發(fā)送準(zhǔn)備請(qǐng)求,參與者執(zhí)行事務(wù)準(zhǔn)備,并向協(xié)調(diào)者發(fā)送準(zhǔn)備就緒的通知。

2.提交階段

如果所有參與者都準(zhǔn)備就緒,則協(xié)調(diào)者向所有參與者發(fā)送提交請(qǐng)求,參與者執(zhí)行事務(wù)提交。

如果所有參與者都成功提交了事務(wù),則事務(wù)成功完成。

否則,如果任何一個(gè)參與者失敗或者無法提交,則所有參與者都會(huì)被要求回滾(Rollback)事務(wù),以保持一致性。

2PC的優(yōu)點(diǎn)是簡(jiǎn)單易懂,并且在理想情況下能夠保證分布式系統(tǒng)中事務(wù)的原子性和一致性。

兩階段有如下幾個(gè)缺點(diǎn):

1.阻塞問題

在2PC的準(zhǔn)備階段,協(xié)調(diào)者需要等待所有參與者的響應(yīng),這可能會(huì)導(dǎo)致整個(gè)系統(tǒng)的阻塞。

2.單點(diǎn)故障

在2PC中,協(xié)調(diào)者是一個(gè)單點(diǎn),它負(fù)責(zé)協(xié)調(diào)所有參與者的操作。

如果協(xié)調(diào)者發(fā)生故障,那么整個(gè)事務(wù)可能會(huì)無法完成,即使參與者的大部分已經(jīng)準(zhǔn)備好了,這種單點(diǎn)故障會(huì)影響系統(tǒng)的可用性和可靠性。

3.數(shù)據(jù)不一致性

2PC無法處理所有故障情況,例如:協(xié)調(diào)者和參與者之間的網(wǎng)絡(luò)分區(qū)或者通信失敗。

在這種情況下,可能會(huì)出現(xiàn)數(shù)據(jù)不一致性,一些參與者已經(jīng)提交了事務(wù),而另一些參與者卻未收到提交指令,導(dǎo)致系統(tǒng)狀態(tài)混亂。

三階段提交協(xié)議

三階段提交協(xié)議,Three-phase commit, 簡(jiǎn)稱是3PC,3PC是2PC的改進(jìn)版。

如下圖所示:

圖片圖片

3PC的主要思想是引入一個(gè)【預(yù)提交階段】,以減輕2PC中的阻塞問題,同時(shí)保持原子性和一致性。

3PC,主要分為三個(gè)階段:

1.預(yù)提交階段

協(xié)調(diào)者詢問參與者是否可以提交事務(wù),并等待它們的響應(yīng),如果所有參與者都同意,則進(jìn)入下一階段。

2.提交階段

協(xié)調(diào)者向所有參與者發(fā)送提交請(qǐng)求,要求它們提交事務(wù),如果任何參與者無法提交,則執(zhí)行回滾。

3.確認(rèn)階段

協(xié)調(diào)者向所有參與者發(fā)送確認(rèn)消息,告知它們事務(wù)已經(jīng)提交,這一階段用于解決2PC中的阻塞問題。

3PC相較于2PC的優(yōu)點(diǎn)是在第一階段引入了一個(gè)“詢問”階段,避免了2PC的直接準(zhǔn)備階段可能出現(xiàn)的長(zhǎng)時(shí)間阻塞問題。

兩階段與三階段對(duì)比,如下圖所示:

圖片圖片

補(bǔ)償事務(wù)

TCC(Try-Confirm-Cancel)是一種補(bǔ)償性事務(wù)處理模式,用于實(shí)現(xiàn)分布式系統(tǒng)中的一致性操作。

如下圖所示:

圖片圖片

TCC模式通過三個(gè)階段的操作來確保事務(wù)的一致性:嘗試(Try)、確認(rèn)(Confirm)和取消(Cancel)。

1.嘗試階段(Try)

在嘗試階段,系統(tǒng)會(huì)嘗試執(zhí)行事務(wù)操作的所有必要檢查和準(zhǔn)備工作,以確保事務(wù)能夠成功執(zhí)行。

這包括檢查資源的可用性、鎖定所需資源等,如果所有的檢查都通過,系統(tǒng)會(huì)記錄下所有的嘗試操作,但并不會(huì)實(shí)際執(zhí)行事務(wù)。

2.確認(rèn)階段(Confirm)

在確認(rèn)階段,系統(tǒng)會(huì)執(zhí)行事務(wù)操作,并且確認(rèn)之前所做的嘗試操作。

如果事務(wù)操作成功執(zhí)行,系統(tǒng)將確認(rèn)并提交事務(wù),在這個(gè)階段,系統(tǒng)會(huì)持久化事務(wù)的結(jié)果,確保事務(wù)的最終執(zhí)行。

3.取消階段(Cancel)

如果在嘗試階段或者確認(rèn)階段發(fā)生了錯(cuò)誤或者異常情況,系統(tǒng)將進(jìn)入取消階段。

在這個(gè)階段,系統(tǒng)會(huì)執(zhí)行逆向操作,取消之前嘗試階段所做的操作,這樣可以確保系統(tǒng)的狀態(tài)回滾到事務(wù)開始之前的狀態(tài),以維持?jǐn)?shù)據(jù)的一致性。

TCC模式允許開發(fā)人員在每個(gè)階段都定義自己的業(yè)務(wù)邏輯和補(bǔ)償操作,以適應(yīng)不同的業(yè)務(wù)需求。

但是,TCC模式要求開發(fā)人員在每個(gè)階段都顯式定義業(yè)務(wù)邏輯和補(bǔ)償操作,這增加了系統(tǒng)的復(fù)雜性和開發(fā)成本,需要設(shè)計(jì)和維護(hù)每個(gè)階段的邏輯,并確保它們之間的一致性。

最終一致性

最終一致性是分布式系統(tǒng)中的一種一致性模型,它允許數(shù)據(jù)副本在一段時(shí)間內(nèi)的狀態(tài)之間存在不一致,但最終將會(huì)達(dá)到一致的狀態(tài)。

如下圖所示:

圖片圖片

在最終一致性模型中,節(jié)點(diǎn)之間的數(shù)據(jù)同步通常是通過消息傳遞來實(shí)現(xiàn)的。

當(dāng)一個(gè)節(jié)點(diǎn)的數(shù)據(jù)發(fā)生變化時(shí),它會(huì)通過異步方式將消息發(fā)送給其他節(jié)點(diǎn),由于消息傳遞是異步的,因此節(jié)點(diǎn)之間的數(shù)據(jù)同步可能會(huì)有一定的延遲。

因此,最終一致性模型允許節(jié)點(diǎn)之間的數(shù)據(jù)副本,在一段時(shí)間內(nèi)存在不一致,但最終會(huì)收斂到一致的狀態(tài)。

責(zé)任編輯:武曉燕 來源: mikechen的互聯(lián)網(wǎng)架構(gòu)
相關(guān)推薦

2022-07-03 14:03:57

分布式Seata

2021-04-27 07:52:18

分布式事務(wù)系統(tǒng)

2023-11-06 13:15:32

分布式事務(wù)Seata

2019-10-10 09:16:34

Zookeeper架構(gòu)分布式

2013-05-16 09:31:22

虛擬交換機(jī)分布式虛擬機(jī)

2022-06-13 10:42:21

分布式事務(wù)數(shù)據(jù)庫(kù)

2022-01-25 11:38:13

分布式數(shù)據(jù)中心數(shù)據(jù)中心

2024-06-13 09:25:14

2022-07-10 20:24:48

Seata分布式事務(wù)

2019-11-04 08:38:45

分布式事務(wù)主流TCC

2024-01-04 23:55:53

2024-04-19 16:12:23

2022-06-27 08:21:05

Seata分布式事務(wù)微服務(wù)

2022-06-21 08:27:22

Seata分布式事務(wù)

2020-05-28 09:35:05

分布式事務(wù)方案

2023-09-14 15:44:46

分布式事務(wù)數(shù)據(jù)存儲(chǔ)

2017-07-26 15:08:05

大數(shù)據(jù)分布式事務(wù)

2025-01-15 08:34:00

分布式事務(wù)服務(wù)

2023-03-05 18:23:38

分布式ID節(jié)點(diǎn)

2024-08-19 09:05:00

Seata分布式事務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)