CAP原理和BASE理論


CAP原理

概述
  • CAP理論的主要場景是在分布式環境下,在單機環境下,基本可不考慮CAP問題。
  • CAP理論就是說在分布式存儲系統中,最多只能實現上面的兩點。而由於當前的網絡硬件肯定會出現延遲丟包等問題,所以分區容忍性是我們必須需要實現的。所以我們只能在一致性和可用性之間進行權衡,沒有NoSQL系統能同時保證這三點。
  • enter image description here
  • 為了保證一致性(CP),不能訪問未同步完成的節點,也就失去了部分可用性;
    為了保證可用性(AP),允許讀取所有節點的數據,但是數據可能不一致。
CAP理解
  • Consistency:一致性,原文翻譯過來是說,對於任何從客戶端發達到分布式系統的數據讀取請求,要么讀到最新的數據要么失敗。換句話說,一致性是站在分布式系統的角度,對訪問本系統的客戶端的一種承諾:要么我給您返回一個錯誤,要么我給你返回絕對一致的最新數據,不難看出,其強調的是數據正確。

  • Availability:可用性,原文翻譯過來是說,對於任何求從客戶端發達到分布式系統的數據讀取請求,都一定會收到數據,不會收到錯誤,但不保證客戶端收到的數據一定是最新的數據。換句話說,可用性是站在分布式系統的角度,對訪問本系統的客戶的另一種承諾:我一定會給您返回數據,不會給你返回錯誤,但不保證數據最新,強調的是不出錯。

  • Partition tolerance:分區容忍性,這個詞有點怪,如果直接看中文的確有點不太好理解。那么看原文翻譯怎么說的,分布式系統應該一直持續運行,即使在不同節點間同步數據的時候,出現了大量的數據丟失或者數據同步延遲。
    (PS:V,您瞧瞧,包容度多高,簡直是打不死的小強,現在應該能夠理解為什么用tolerance容忍度這個詞了吧。)
    換句話說,分區容忍性是站在分布式系統的角度,對訪問本系統的客戶端的再一種承諾:我會一直運行,不管我的內部出現何種數據同步問題,強調的是不掛掉。

BASE理論
  • BASE是Basically Available(基本可用)、Soft state(軟狀態)和Eventually consistent(最終一致性)三個短語的簡寫,BASE是對CAP中一致性和可用性權衡的結果,其來源於對大規模互聯網系統分布式實踐的結論,是基於CAP定理逐步演化而來的,其核心思想是即使無法做到強一致性(Strong consistency),但每個應用都可以根據自身的業務特點,采用適當的方式來使系統達到最終一致性(Eventual consistency)
基本可用
  • 指分布式系統在出現故障的時候,保證核心可用,允許損失部分可用性。
    例如,電商在做促銷時,為了保證購物系統的穩定性,部分消費者可能會被引導到一個降級的頁面。
軟狀態
  • 指允許系統中的數據存在中間狀態,並認為該中間狀態不會影響系統整體可用性,即允許系統不同節點的數據副本之間進行同步的過程存在時延
最終一致性
  • 最終一致性強調的是系統中所有的數據副本,在經過一段時間的同步后,最終能達到一致的狀態。
    ACID 要求強一致性,通常運用在傳統的數據庫系統上。而 BASE 要求最終一致性,通過犧牲強一致性來達到可用性,通常運用在大型分布式系統中。
    在實際的分布式場景中,不同業務單元和組件對一致性的要求是不同的,因此 ACID 和 BASE 往往會結合在一起使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM