作用
分布式系統(tǒng)的最大難點(diǎn)肾筐,就是各個(gè)節(jié)點(diǎn)的狀態(tài)如何同步。CAP定理正是解決這方面問題的基本定理,也是理解分布式系統(tǒng)的起點(diǎn)。
定義
分布式系統(tǒng)有三個(gè)指標(biāo):
Consistency
Availability
Partition tolerance
它們的首個(gè)字母分別是C,A,P
Consistency:即一致性瘫证。在分布式系統(tǒng)中,在一個(gè)節(jié)點(diǎn)寫完后庄撮,在任意一個(gè)節(jié)點(diǎn)讀數(shù)據(jù)背捌,都能讀到剛才寫完的數(shù)據(jù)。
Avaliability:即可用性洞斯。意思是毡庆,只要收到客戶端的請(qǐng)求,服務(wù)器(不管是哪個(gè)節(jié)點(diǎn))必須給出回應(yīng)巡扇,而不管回應(yīng)是什么扭仁。
Partition tolerance:即分區(qū)容忍性垮衷。所謂分區(qū)容忍性厅翔,指的是網(wǎng)絡(luò)發(fā)生分區(qū)時(shí),還能繼續(xù)提供服務(wù)(即容忍)搀突。分區(qū)的含義舉個(gè)例子刀闷,有S1、S2兩臺(tái)服務(wù)器仰迁,本來在同一個(gè)網(wǎng)絡(luò)甸昏,但是現(xiàn)在它們之間網(wǎng)絡(luò)連接斷了,變成了兩個(gè)網(wǎng)絡(luò)徐许,就出現(xiàn)了分區(qū)。
所謂指標(biāo)就是希望能達(dá)到的目標(biāo)雌隅,而CAP定理指的是這3個(gè)指標(biāo)不能同時(shí)達(dá)到翻默。
為什么成立
首先如果P達(dá)不到,意味著不能正常提供服務(wù)了恰起,那就沒有C修械、A可言,因此P肯定要達(dá)到检盼。那CAP定理就演化成了肯污,C和A不能同時(shí)達(dá)到。
那為什么C和A不能同時(shí)達(dá)到呢?舉個(gè)例子蹦渣,有服務(wù)器S1和S2哄芜,他們兩個(gè)各自維護(hù)彼此一樣的數(shù)據(jù)。現(xiàn)在用戶往S1寫數(shù)據(jù)剂桥,為了做到C忠烛,就必須讓S2停止讀寫,等S1同步到S2后才能開放讀寫权逗,而停止的操作美尸,就出現(xiàn)S2不可用,這時(shí)A就不成立斟薇。反過來师坎,如果A要成立,S2就要繼續(xù)工作堪滨,就會(huì)導(dǎo)致用戶取S2的數(shù)據(jù)時(shí)胯陋,不是剛才寫的數(shù)據(jù),就導(dǎo)致了C不成立袱箱。
最后
最后遏乔,可以重新理解一下CAP。之前我們的理解是发笔,CAP不能同時(shí)存在盟萨,那現(xiàn)在可以再提煉為,P成立下了讨,CA只能二選一捻激。
參考鏈接
http://www.ruanyifeng.com/blog/2018/07/cap.html
https://www.zhihu.com/question/64778723