分布式理論 BASE理論

2021-10-08 08:45:55 字數 1056 閱讀 9900

根據cap定理,我們在分布式系統最多只能在 一致性、可用性、分割槽容錯性 中三選二。那能不能解決3選2的問題呢?

想要解決3選2的問題,首先需要思考分割槽是百分之百出現的嗎?如果不出現分割槽,那麼就能夠同時滿足cap。如果出現了分割槽,可以根據策略進行調整。比如c不必使用那麼強的一致性,可以先將資料存起來,稍後再更新,實現所謂的最終一致性。

基於這個理論,也引出了第二個理論:base理論

base (全稱由三個短語的縮寫組成):

base 理論是對 cap 中一致性和可用性權衡的結果,其**於對大型網際網路分布式實踐的總結,是基於 cap 定理逐步演化而來的。

其核心思想是:既然無法做到強一致性(strong consistent),但每個應用都可以根據自身的業務特點,採用適當的方式來使系統達到最終一致性(eventual consistency)

基本可用指的是分布式系統在出現不可預知故障的時候,允許損失部分可用性,但不等價於系統不可用。以下為兩個「基本可用」的例子

什麼是軟狀態呢?相對於一致性,要求多個節點的資料副本都是一致的,這是一種「硬狀態」。

軟狀態指的是:允許系統中的資料存在中間狀態,並認為該狀態不影響整體的可用性,即允許系統在多個不同節點的資料副本進行資料同步的過程中存在延遲

最終一致性強調的是系統中所有的資料副本,在經過一段時間的同步之後,最終能夠達到乙個一致的狀態。因此最終一致性的本質是需要系統保證最終資料能夠達到一致,而不需要實時保證系統資料的強一致性。

在實際工程實踐中,最終一致性存在以下五類主要變種:

以上就是最終一致性的五類常見變種,在系統時間中,可以將其其中的若干個變種互相結合起來,以構建乙個具有最終一致性特性的分布式系統

總的來說,base理論面向的是大型高可用可擴充套件的分布式系統,和傳統食物的acid是相反的,它完全不同於acid的強一致性模型,而是通過犧牲強一致性來獲得可用性,並允許資料在一段時間是不一致的,但要保證資料最終一致。

分布式CAP理論和BASE理論

現如今,在分布式場景下,集群規模越來越大,節點越來越多。所以說節點故障 網路故障會是常態化產生,因此分割槽容錯性 p 是必須要保證的。所以只能在一致性 c 和可用性 a 之間來進行取捨。但對於傳統的專案就可能有所不同,拿銀行的轉賬系統來說,涉及到金錢的對於資料一致性不能做出一絲的讓步,c必須保證,出...

分布式事務 BASE 理論

部分總結出自參考資料 問題 下面我們將會了解 acid 的基礎上進行了解 base 理論 記得在學習 mysql 的時候最早接觸的就是acid,說的是資料庫事務操作中要滿足這四個方面 分別為 以下總結來自 非原創 base理論的核心思想是 即使無法做到強一致性,但每個應用都可以根據自身業務特點,採用...

分布式理論

拜占庭將軍問題 byzantine failures 是由萊斯利 蘭伯特提出的點對點通訊中的基本問題。含義是在存在訊息丟失的不可靠通道上試圖通過訊息傳遞的方式達到一致性是不可能的。因此對一致性的研究一般假設通道是可靠的,或不存在本問題。萊斯利 蘭波特在其 中描述了如下問題 一組拜占庭將軍分別各率領一...