1. 程式人生 > >分散式系統下資料一致性解決之分散式事務

分散式系統下資料一致性解決之分散式事務

一、定義

參考百度百科定義:

分散式事務是指事務的參與者、支援事務的伺服器、資源伺服器以及事務管理器分別位於不同的分散式系統的不同節點之上。

二、分散式事務的理論

2.1 CAP理論

CAP 是指在一個分散式系統下, 包含三個要素:Consistency(一致性)、Availability(可用性)、Partition tolerance(分割槽容錯性),並且三者不可得兼。

  • C:Consistency,一致性,所有資料變動都是同步的。

  • A:Availability,可用性,即在可以接受的時間範圍內正確地響應使用者請求。

  • P:Partition tolerance

    ,分割槽容錯性,即某節點或網路分割槽故障時,系統仍能夠提供滿足一致性和可用性的服務。

2.2 Base理論

BASE 理論主要是解決 CAP 理論中分散式系統的可用性和一致性不可兼得的問題。BASE 理論包含以下三個要素:

  • BA:Basically Available,基本可用。

  • S:Soft State,軟狀態,狀態可以有一段時間不同步。

  • E:Eventually Consistent,最終一致,最終資料是一致的就可以了,而不是時時保持強一致

三、一些實際的解決方法

3.1最大努力通知系統

應用場景:支付寶支付成功通知、簡訊通知

適用場景:對資料一致性要求不是特別高的場景,不是主業務流程的場景

最佳實踐: 無

最大努力通知系統包含三個主題:上游應用、最大努力通知、下游應用

3.1.1傳送通知時序

draw.io

3.1.2 補償時序

draw.io

3.2可靠性訊息系統

可靠性訊息系統包含三個主體:業務方、可靠訊息服務、接收方

draw.io

可靠性訊息系統時序

3.2.1、傳送訊息系統時序

draw.io

3.2.2、訊息確認以及重發時序

針對3.1.1的4、5、6、10失敗情況導致不一致情況的時序

draw.io

3.3 TCC(Try-confirm-cancel)

業界實現方案:

atomkos

適用場景:long-running transaction,資料一致性要求高。如各種支付場景。

3.3.1 業務說明

draw.io

3.4 TXC