CAP的理解
1.CAP定理:
? 指的是在一個分布式系統(tǒng)中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分區(qū)容錯性),三者不可同時(shí)獲得
? 一致性(c):所有節(jié)點(diǎn)都可以訪問到最新數(shù)據(jù)
? 可用性(A):每個請求都可以得到響應(yīng)的,不管請求是成功還是失敗
? 分區(qū)容錯性(P):除了全部整體網(wǎng)絡(luò)故障,其他故障都不能導(dǎo)致整個系統(tǒng)不可用
?
2.CAP理論就是說在分布式存儲系統(tǒng)中,最多只能實(shí)現(xiàn)上面的倆點(diǎn)。而由于當(dāng)前的網(wǎng)絡(luò)硬件肯定會出現(xiàn)延遲丟包等問題,所以分區(qū)容忍性是我們必須需要實(shí)現(xiàn)的,所以我們只能在一致性和可用性之間進(jìn)行權(quán)衡
CA: 如果不要求P(不允許分區(qū)),則C(強(qiáng)一致性)和A(可用性)是可以保證的。但放棄P的同時(shí)也就意味著放棄了系統(tǒng)的擴(kuò)展性,也就是分布式節(jié)點(diǎn)受限,沒辦法部署子節(jié)點(diǎn),這是違背分布式系統(tǒng)設(shè)計(jì)的初衷的
?
CP: 如果不要求A(可用),每個請求都需要在服務(wù)器之間保持強(qiáng)一致,而P(分區(qū))會導(dǎo)致同步時(shí)間無限延長(也就是等待數(shù)據(jù)同步完才能正常訪問服務(wù)),一旦發(fā)生網(wǎng)絡(luò)故障或者消息丟失等情況,就要犧牲用戶的體驗(yàn),等待所有數(shù)據(jù)全部一致了之后再讓用戶訪問系統(tǒng)
?
AP:要高可用并允許分區(qū),則需放棄一致性。一旦分區(qū)發(fā)生,節(jié)點(diǎn)之間可能會失去聯(lián)系,為了高可用,每個節(jié)點(diǎn)只能用本地?cái)?shù)據(jù)提供服務(wù),而這樣會導(dǎo)致全局?jǐn)?shù)據(jù)的不一致性。
總結(jié)
- 上一篇: Java实现简易客房管理系统
- 下一篇: 针对小米手机fastboot模式下电脑无