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