1. 程式人生 > >CAP理論的理解

CAP理論的理解

故障 寫入 存儲 分布式存 原理 系統數據 寫鎖 服務 spark

CAP是架構設計理論中比較有名的一套。這裏分享一下我對這個理論的淺薄理解。

C: 一致性,同一個客戶端寫入存儲系統數據後。
如果能夠立即讀取到剛剛寫入的數據,這個叫強一致性即所有節點同一時間看到是相同的數據;
如果不能立即而是要等一段時間則是弱一致性。

A:可用性,如果一個節點失效了,不管客戶端的請求是否是否完全執行成功,能夠確保每一個請求都能接收到響應。也就是不會返回error,內存溢出等報錯。寫入失敗,就返回失敗,讀取最新數據失敗,就返回舊有數據,這兩種情況都算可用。

P:當分布式系統的部分節點和其他節點網絡不通時,出現網絡分區。這時網絡通暢的節點仍然能夠提供讀寫一致性和可用性

A和P的區別:A強調節點掛掉,P強調網絡不通。


看了阿裏的那邊《大規模分布式存儲原理解析與架構實戰》後,感覺自己寫的一套分布式系統,只有用zk實現一個讀寫鎖,節點拆分多個可以並行,服務可擴展而已,這麽簡單,很多工作一兩年的人都想得到。自己還沾沾自喜。


我的理解,真正的分布式系統應該首先是高性能並且可擴展,其次高可用或者強一致二者取其一。
要滿足這個目標,要有大量的邏輯來實現故障檢測,副本同步,分布式協調,可擴展。

spark應該算是AP架構,
HDFS算AP架構,
msyql主從集群算AP架構,
arangodb,mongodb當副本同步使用默認的異步方式時,就是AP架構,否則是CP架構

CAP理論的理解