動態

詳情 返回 返回

分佈式理論 CAP + Base - 動態 詳情

簡介

在分佈式系統的設計中,分佈式系統有三個指標 CAP,但是沒有一種設計可以同時滿足 CAP (一致性,可用性,分區容錯性 )3個特性,只能滿足其中 2 個

CAP

簡介

CAP 描述
C 一致性 Consistency,一致性 強調的是 分佈式系統中各個節點之間的數據一致性;不管訪問哪個節點,返回的數據都是一致的,否則節點不可用(拒絕服務)
A 可用性 Availability,可用性 強調的是 分佈式系統中各個節點都能正常被訪問,正常響應請求,但是無法保證 返回數據的一致性:也就是各個節點正常訪問但是節點之間數據不一定一致
P 分區容錯性 Partition tolerance,節點網絡故障,不可避免,當節點間出現任意數量的消息丟失或高延遲(網絡障礙)的時候,系統仍然可以繼續提供服務

當節點出現的數據不一致時的處理方式不同

組合

組合 描述
CA 一致性 + 可用性,不存在,P 一定得有,分佈式系統下,網絡故障網絡延遲必然存在,
CP 一致性 + 分區容錯性;數據強一致性,返回的都是絕對一致的數據,不一致的時候會讀取失敗(拒絕提供服務)
AP 可用性 + 分區容錯性:服務高可用,但是不能保證數據一致性,要保證數據一致性,服務就不一定可用

Base

Base:基本可用(Basically Available)和最終一致性(Eventually consistent)

CAP 規則下 AP 模型 的延伸,AP + Base,實現 服務高可用 + 數據最終一致性

最終一致性:也就是允許節點之間的數據出現短暫的數據不一致情況,但是節點高可用

為什麼 CAP 不能同時滿足?

在分佈式系統中,節點與節點之間通過網絡通信,網絡通信必然存在:網絡延遲、網絡故障;

因此 CAP 中,P (分區容錯性)必須存在, 其次,CA 不可能同時存在,因為分佈式系統下,數據同步存在延遲,無法實時一致性,存在某一刻不一致,那麼數據不一致的情況下:

● 節點要麼滿足 C,數據不一致,拒絕服務

● 節點要麼滿足 A,服務可用,但是數據不一致

綜上所述:P 必須,C 和 A 只能選一個,也就是 組合: CP、AP

Redis 採用的分佈式理論 CAP + Base

redis 採用的是 AP + Base 模型,也就是滿足 分區容錯性 和 服務高可用 ,保證數據的最終一致性

原文地址

分佈式理論 CAP + Base

user avatar mirrorship 頭像 hnclou 頭像 zengshenaiguodehuoche_d2oimj 頭像
點贊 3 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.