cap全名為CAP原則或CAP定理,指的是在一個分散式系統中,一致性(Consistency)、可用性(Availability)、分區容錯性(Partition tolerance)這三個要素最多只能同時實現兩點,不可能三者兼顧。
本教學操作環境:windows7系統、Dell G3電腦。
CAP原則又稱為CAP定理,指的是在一個分散式系統中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性),三者不可得兼。
一致性(C):在分散式系統中的所有資料備份,在同一時刻是否有相同的值。 (等同於所有節點存取同一份最新的資料副本)
可用性(A):保證每個請求不管成功或失敗都有回應。
分割區容忍性(P):系統中任意資訊的遺失或失敗不會影響系統的繼續運作。
CAP原則的精髓就是是AP,要嘛CP,要嘛AC,但是不存在CAP。如果在某個分散式系統中數據無副本, 那麼系統必然滿足強一致性條件, 因為只有獨一數據,不會出現數據不一致的情況,此時C和P兩要素具備,但是如果系統發生了網絡分區狀況或宕機,必然導致某些資料不可以訪問,此時可用性條件就不能被滿足,即在此情況下獲得了CP系統,但是CAP不可同時滿足。
因此在進行分散式架構設計時,必須做出取捨。目前一般是透過分散式快取中各節點的最終一致性來提高系統的效能,透過使用多節點之間的資料非同步複製技術來實現叢集化的資料一致性。通常使用類似 memcached 之類的 NOSQL 作為實作手段。雖然 memcached 也可以是分散式叢集環境的,但是對於一份資料來說,它總是儲存在某一台 memcached 伺服器上。如果發生網路故障或是伺服器當機,則儲存在這台伺服器上的所有資料都將無法存取。由於資料是儲存在記憶體中的,重啟伺服器,將導致資料全部遺失。當然也可以自己實作一套機制,用來在分散式 memcached 之間進行資料的同步與持久化,但實現難度是非常大的。
更多程式相關知識,請造訪:程式設計影片! !
以上是cap是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!