tft每日頭條

 > 生活

 > cap理論的核心是什麼

cap理論的核心是什麼

生活 更新时间:2024-11-29 06:32:21
什麼是CAP

CAPConsistencyAvailabilityPartition tolerance三個詞語的縮寫,分别表示一緻性可用性分區容忍性

為了方便對CAP理論的理解,我們結合電商系統中的一些業務場景來理解CAP。

cap理論的核心是什麼(CAP理論簡介)1

  • Consistency(一緻性)

一緻性是指寫操作後的讀操作可以讀取到最新的數據狀态,當數據分布在多個節點上時,從任意節點上讀取的數據都是最新的。

上圖中,商品信息的讀寫要滿足一緻性就要實現下面的目标:

商品服務成功寫入主數據庫後,立刻能從從數據庫中查詢到最新的數據。

如何實現一緻性?

  1. 數據寫入主數據庫後要立即将數據同步到從數據庫。
  2. 在主從同步期間要将從數據庫鎖定,待同步完成後再釋放鎖,以免在同步期間,在從數據庫中讀取到舊數據。
  • Availability(可用性)

可用性是指任何事務操作都可以得到響應結果,且不會出現響應超時或響應錯誤。

上圖中,商品信息的讀寫要滿足可用性就要實現下面的目标:

  1. 從數據庫接收到查詢請求需立即返回響應數據。
  2. 從數據庫不允許出現響應超時或響應錯誤。

如何實現可用性?

  1. 主從同步期間,不可将從數據庫中的資源鎖定。
  2. 即使數據還沒有同步過來,從數據庫也要返回要查詢的數據,哪怕是舊數據也行。
  • Partition tolerance(分區容忍性)

通常分布式系統的各個節點部署在不同的子網,這就是網絡分區;因為網絡分區存在,那麼不可避免地會出現由于網絡問題而導緻節點之間通信失敗,此時系統仍可對外提供服務,這就叫分區容忍性。

上圖中,商品信息的讀寫要滿足分區容忍性就要實現下面的目标:

  1. 主從同步失敗不能影響讀寫操作。
  2. 其中一個節點挂掉不影響另一個節點對外提供服務。

如何實現分區容忍性?

  1. 盡量使用異步操作取代同步操作。例如使用異步方式将數據從主數據庫同步到從數據庫,這樣節點之間能有效地實現松耦合。
  2. 添加從數據庫節點,其中一個從節點挂掉時,其他從節點提供服務。

注意:分區容忍性是分布式系統應具備的基本能力。


CAP組合方式

在所有分布式事務場景中不會同時具備CAP三個特性,因為在具備了P的前提下C和A是不能共存的。

  • AP

放棄一緻性,追求可用性和分區容忍性。這是很多分布式系統設計時的選擇。

例如上面的商品服務,完全可以實現AP,前提是用戶可以接受所查詢的數據在一定時間内不是最新的。

通常實現AP時都會保證最終一緻性。BASE理論就是根據AP來擴展的。

  • CP

放棄可用性,追求一緻性和分區容忍性。zookeeper其實就是追求的強一緻性。

  • CA

一般分布式系統不會采用。

總結

CAP是一個已經被證實的理論:一個分布式系統最多隻能同時滿足一緻性(Consistency)、可用性(Availability)和分區容忍性(Partition tolerance)這三項中的兩項。它可以作為我們進行架構設計、技術選型的考量标準。對于多數大型互聯網系統,節點衆多、部署分散,節點故障和網絡故障都是常态,而且要保證服務可用性達到N個9(99.99....%),并且要達到良好的響應性能,因此一般都會做出如下選擇:保證P和A,舍棄C,保證最終一緻性。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved