CAP理論

簡介:數據庫

      在理論計算機科學中,CAP定理(CAP theorem),又被稱做布魯爾定理(Brewer’s theorem),理論的核心是:一個分佈式系統不可能同時很好的知足一致性,可用性和分區容錯性這三個需求,最多隻能同時較好的知足兩個。網絡

類別:併發


一致性(Consistency)分佈式

概念:
同一個數據在集羣中的全部節點,同一時刻是否都是一樣的值。
說明:
對於一致性,能夠分爲從客戶端和服務端兩個不一樣的視角。從客戶端來看,一致性主要指的是多併發訪問時更新過的數據如何獲取的問題。從服務端來看,則是更新如何複製分佈到整個系統,以保證數據最終一致。一致性是由於有併發讀寫纔有的問題,所以在理解一致性的問題時,必定要注意結合考慮併發讀寫的場景。從客戶端角度,多進程併發訪問時,更新過的數據在不一樣進程如何獲取的不一樣策略,決定了不一樣的一致性。對於關係型數據庫,要求更新過的數據能被後續的訪問都能看到,這是強一致性。若是能容忍後續的部分或者所有訪問不到,則是弱一致性。若是通過一段時間後要求能訪問到更新後的數據,則是最終一致性。spa


可用性(Availability進程

概念:
集羣中一部分節點故障後,集羣總體是否還能處理客戶端的更新請求。
說明:
對於一個可用性的分佈式系統,每個工做正常的節點必須對每個請求做出響應。好的可用性主要是指系統可以很好的爲用戶服務,不出現用戶操做失敗或者訪問超時等用戶體驗很差的狀況。rem

 


分區容忍性(Partition tolerance同步

概念:
是否容許數據的分區,分區的意思是指是否容許集羣中的節點之間沒法通訊。
說明:
分區容錯性和擴展性緊密相關。在分佈式應用中,某些緣由會致使系統沒法正常運轉。好比如今的分佈式系統中有某一個或者幾個機器宕掉了,其餘剩下的機器還可以正常運轉知足系統需求,或者是機器之間有網絡異常,將分佈式系統分隔未獨立的幾個部分,各個部分還能維持分佈式系統的運做,這樣就具備良好的分區容錯性。it


選擇:io

      因爲分佈式系統,咱們沒法不選擇P,由於因爲網絡的不可靠性,一定會致使兩個機器節點之間沒法進行網絡通訊,從而致使數據沒法同步。這樣的現實致使咱們必須選擇P。而後,在這個前提下,咱們要麼選擇A,要麼選擇C。

下面分析一下緣由:
    當兩臺機器節點之間沒法通訊時(即選擇了P),若是咱們繼續容許客戶端寫入數據到其中一臺,那就必然致使數據不一致,由於這個數據沒法同步到另外一臺機器。(這種作法就是選擇了A,犧牲了C)
    當兩臺機器節點之間沒法通訊時(即選擇了P),若是咱們不容許客戶端寫入數據到任何一臺,那數據雖然是一致的,但系統就不可用了。(這種作法就是選擇了C,犧牲了A)
相關文章
相關標籤/搜索