一張圖解釋 CAP 理論中 C、A、P 三者間的關係

在這裏插入圖片描述

CAP 原則又稱 CAP 定理,指的是在一個分佈式系統中,一致性(Consistency)、可用性(Availability)、分區容錯性(Partition tolerance)。CAP 原則表明,這三個要素最多隻能同時實現兩點,不可能三者兼顧。

什麼是分區?

一個分佈式系統裏面,節點組成的網絡在正常狀態下應該是連通的,也就是所有節點出於同一分區中。然而軟件、硬件或者網絡等故障不可避免,使得分佈式系統中的節點之間不連通了,整個網絡就分成了幾塊區域。當系統數據無法在不同分區間傳輸時,系統就是不可用的,這樣的系統就是分區不容忍的系統。

通過增加數據副本的方式可以提高分區容忍性,也就是將同一數據的不同副本存儲到分佈式系統的不同存儲節點中。然而,同一數據擁有多個副本後,副本之間數據在特定階段、特定時刻,會出現某種程度的數據不一致的問題。

因此,三要素之間有着如上圖所示的難以調和的矛盾,魚與熊掌不可兼得。

另外,在分佈式系統中,分區容忍性是必須要具備的特性,是不可放棄的,分佈式系統中,要麼選擇 CP,要麼選擇 AP,沒有 CA 這種選擇。

舉個簡單的例子,在分佈式系統中有三個節點 A、B、C,它們都保存着同一數據的不同副本,假設該系統同時滿足 C(一致性)、A(可用性),當故障發生時,系統被分成了兩個區 {A、B} 和 {C},這種情況下,C 接收到一條更改數據的請求,那麼有兩種可能的操作:

  1. 執行更新,那麼除非系統從故障中恢復,否則 A,B 無法獲悉本次更新;
  2. 拒絕更新;

總之,要麼選擇一致性,要麼選擇可用性,無法同時滿足。

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