cap全稱CAP原則或CAP定理,指的是在一個分布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)、分區(qū)容錯性(Partition tolerance)這三個要素最多只能同時實現(xiàn)兩點,不可能三者兼顧。
本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
CAP原則又稱CAP定理,指的是在一個分布式系統(tǒng)中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區(qū)容錯性),三者不可得兼。
一致性(C):在分布式系統(tǒng)中的所有數(shù)據備份,在同一時刻是否同樣的值。(等同于所有節(jié)點訪問同一份最新的數(shù)據副本)
可用性(A):保證每個請求不管成功或者失敗都有響應。
分區(qū)容忍性(P):系統(tǒng)中任意信息的丟失或失敗不會影響系統(tǒng)的繼續(xù)運作。
CAP原則的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。如果在某個分布式系統(tǒng)中數(shù)據無副本, 那么系統(tǒng)必然滿足強一致性條件, 因為只有獨一數(shù)據,不會出現(xiàn)數(shù)據不一致的情況,此時C和P兩要素具備,但是如果系統(tǒng)發(fā)生了網絡分區(qū)狀況或者宕機,必然導致某些數(shù)據不可以訪問,此時可用性條件就不能被滿足,即在此情況下獲得了CP系統(tǒng),但是CAP不可同時滿足。
因此在進行分布式架構設計時,必須做出取舍。當前一般是通過分布式緩存中各節(jié)點的最終一致性來提高系統(tǒng)的性能,通過使用多節(jié)點之間的數(shù)據異步復制技術來實現(xiàn)集群化的數(shù)據一致性。通常使用類似 memcached 之類的 NOSQL 作為實現(xiàn)手段。雖然 memcached 也可以是分布式集群環(huán)境的,但是對于一份數(shù)據來說,它總是存儲在某一臺 memcached 服務器上。如果發(fā)生網絡故障或是服務器死機,則存儲在這臺服務器上的所有數(shù)據都將不可訪問。由于數(shù)據是存儲在內存中的,重啟服務器,將導致數(shù)據全部丟失。當然也可以自己實現(xiàn)一套機制,用來在分布式 memcached 之間進行數(shù)據的同步和持久化,但是實現(xiàn)難度是非常大的。