大剑无锋之了解什么是CAP吗?【面试推荐】
什么是CAP?【這里可不是帽子】
CAP原則又稱CAP定理,指的是在一個分布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)、分區(qū)容錯性(Partition tolerance)。CAP 原則指的是,這三個要素最多只能同時實(shí)現(xiàn)兩點(diǎn),不可能三者兼顧。
百度詞條的解釋,說道最多只能同時實(shí)現(xiàn)兩點(diǎn),昨天面試一家很好地公司,面試官說到,滿足三種也是可以的,只是比較困難。
???嗯。。。我不確定好吧。你們說???
那么什么是一致性(Consisitency)、可用性(Avaliability)、分區(qū)容錯性(Partiton tolerance)?
一致性(C):在分布式系統(tǒng)中的所有數(shù)據(jù)備份,在同一時刻是否同樣的值。(等同于所有節(jié)點(diǎn)訪問同一份最新的數(shù)據(jù)副本)
可用性(A):在集群中一部分節(jié)點(diǎn)故障后,集群整體是否還能響應(yīng)客戶端的讀寫請求。(對數(shù)據(jù)更新具備高可用性)
分區(qū)容忍性(P):以實(shí)際效果而言,分區(qū)相當(dāng)于對通信的時限要求。系統(tǒng)如果不能在時限內(nèi)達(dá)成數(shù)據(jù)一致性,就意味著發(fā)生了分區(qū)的情況,必須就當(dāng)前操作在C和A之間做出選擇。
一致性和可用性好像比較好理解,
一致性:所有節(jié)點(diǎn)訪問同一份數(shù)據(jù)時,這份數(shù)據(jù)是最新的。
至于可用性就是,當(dāng)集群中某節(jié)點(diǎn)故障后,集群整體是否還能響應(yīng)客戶端的讀寫請求。
那么分區(qū)容忍性呢?
就字面讀上去,有點(diǎn)難理解,
簡單來說就是如果集群中的機(jī)器被分成了兩部分,這兩部分不能互相通信,系統(tǒng)是否能繼續(xù)正常工作。
在百度百科中有這樣一句話:
CAP原則的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。如果在某個分布式系統(tǒng)中數(shù)據(jù)無副本, 那么系統(tǒng)必然滿足強(qiáng)一致性條件, 因為只有獨(dú)一數(shù)據(jù),不會出現(xiàn)數(shù)據(jù)不一致的情況,此時C和P兩要素具備,但是如果系統(tǒng)發(fā)生了網(wǎng)絡(luò)分區(qū)狀況或者宕機(jī),必然導(dǎo)致某些數(shù)據(jù)不可以訪問,此時可用性條件就不能被滿足,即在此情況下獲得了CP系統(tǒng),但是CAP不可同時滿足
嗯。。。
歡迎留言討論!
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的大剑无锋之了解什么是CAP吗?【面试推荐】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大剑无锋之分布式和微服务分别是什么?【面
- 下一篇: 大剑无锋之素数【面试推荐】