淺談CAP定理

在單機中,數據庫很容易知足ACID特性的事務,可是在分佈式數據庫中,ACID的分佈式就很難知足了。因此CAP、BASE這樣的分佈式理論,就誕生了。
CAP理論:一致性(C:Consistency),可用性(A: Availability)和分區容錯性(P:Partition tolerance),最多隻能知足其中的兩個。
image.pngsql

  • 一致性:在分佈式環境中,是指數據在多個副本可否保持一致的特性!
  • 可用性:系統提供的服務必須一直處於可用的狀態,用戶的請求都能在指定的時間內獲得服務端的結果。
  • 分區容錯性:分佈式環境中,某個節點或網絡出現分區時,都不影響對外提供一致性和可用性的服務。

咱們看看兩個Mysql數據庫同步的例子:
image.png
C保證了兩個MySQL數據庫數據的一致性,當master數據有更新,slave數據也必須更新。
A保證了master數據庫和slave數據庫都是可用的。
P保證了master數據庫和slave數據庫出現網絡分區時,對外都是可用的。
因爲是分佈式系統,咱們的節點都是在不一樣的網絡中,確定會出現網絡分區,因此P是咱們必需要知足的。若是不想知足,那又回到單機了。
如今的場景是這樣的,master和slave出現了網絡分區,致使數據同步不了,這樣兩邊的數據就不同了,破壞了一致性C。若是咱們想要保證C,那隻能停到master,不讓寫數據,這個時候,又破壞了可用性A。數據庫

相關文章
相關標籤/搜索