CAP原則


  CAP原則指的是在一個分布式系統中,一致性(Consistency)、可用性(Availability)、分區容錯性(Partition tolerance)。CAP 原則指的是,這三個屬性最多只能同時實現兩點,不可能三者兼顧。

 

一.CAP的解釋

  C:  一致性,所有的數據備份在同一時刻具有同樣的值;

  A:可用性,保證無論請求成功或失敗,系統都會給出響應;

  P:分區容錯性,指的是系統任意信息的丟失都不會影響系統的繼續運行,或任意節點的丟失,都不影響其他節點的繼續運行。

 

二.CAP的應用

  CAP只能三選二,任意兩個的組合在計算機領域都有很大的應用。

1)CP

  CP原則,滿足一致性和分區容錯性。比如zookeeper就是典型的使用CP原則的分布式服務。Zookeeper不接收服務掛掉,為什么呢?我們都知道,zookeeper中每當master節點掛掉的時候,系統會進行選舉,重新選擇其它節點作為master。那么問題來了,重新選舉需要花費時間,要知道,每次選舉大概需要花30-120秒,而且選舉期間,整個集群都是不可用的,於是造成了選舉期間服務注冊癱瘓的情況。

  Redis等分布式數據庫滿足CP原則。

 

2)AP

  AP原則,滿足可用性可分區容錯性。比如Eureke使用的就是AP原則。Eureka保證每個服務節點的獨立性,保證某個服務節點的連接失敗或者某個接點掛掉其他節點不受影響。但是Eureka的缺陷就是無法保證數據的一致性,也就是說,某個節點獲取的注冊服務列表,可能不是最新的數據。

  淘寶網、12306這些有使用這個,開學買火車票的時候,剛看還有一張票,點進去就沒了,這就是不滿足數據一致性的例子,還有CouchDB系統等。

 

3)CA

  CA原則,滿足一致性和可用性,放棄分區容錯性,也就意味着系統不再是分布式系統了。滿足CA的比如MySql數據庫,SQL Server等。

 

三.結語

  對於正在深入學習Eureka的我來說只需要了解到這一步即可,有需要再好好研究下。可是,通過CAP原則可以 延伸出很多當下熱門的技術,比如分布式、Redis、Zookeeper、NoSQL等,都是職業發展需要深入學習和研究的,加油吧!

 


免責聲明!

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



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