微服務背景下如何保證分佈式系統數據的一致性

基本概念:

CAP理論:

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

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

  • P:Partition tolerance,分區容錯性,即某節點或網絡分區故障時,系統仍能夠提供滿足一致性和可用性的服務。

BASE理論:

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

  • BA:Basically Available,基本可用。

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

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

傳統的解決分佈式數據一致性的方案採取的是2PC模型,即二階段提交,在這個模型裏面,有三個角色:

  • AP:Application,應用程序,業務層。

  • RM:Resource Manager,資源管理器,關係型數據庫或支持 XA 接口(XA 規範是 X/Open 組織定義的分佈式事務規範)的組件。

  • TM: Transaction Manager ,事務管理器,負責各個 RM 的提交和回滾。

簡單來說就是第一階段是對分佈式事務進行準備,都準備好以後,進入第二階段,進行提交或者回滾。舉例來說就是首先讓所有運動員都在跑道上準備好,大家都準備好了之後,大家一起跑。

但是2PC的弊端就是容易出現資源死鎖的現象,比如一個事務需要依賴於另一個事務,二在2PC模型中,必須所有事務一起提交後才能進行下一步操作,這種現象會隨着項目模塊的複雜度增加而頻繁出現。

微服務框架下,分佈式數據一致性的方案也就應運而生,基本思路也是2PC模型,但是爲了解決事務依賴的問題,引入了可靠消息系統,本質上就是消息組件MQ的使用,第三方插件的介入,成爲上下游系統之間的樞紐,MQ組件中接收上游的消息,下游系統監控着MQ,根據MQ中對應的狀態來決定下游系統的事務執行。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章