聊城網(wǎng)站建設(shè)基本流程java培訓(xùn)學(xué)費(fèi)多少錢
上一篇文章我簡單介紹了一下什么是CAP理論,本篇文章講解一下隨著技術(shù)的演變,CAP理論是如何發(fā)展為BASE理論的。
CAP理論回顧
? ? ? ? 首先我們回顧一下CAP理論,CAP理論指得是分布式系統(tǒng)發(fā)生網(wǎng)絡(luò)等故障時(shí),不同節(jié)點(diǎn)之間無法同步數(shù)據(jù),此時(shí)無法保證所有節(jié)點(diǎn)都能返回一致的數(shù)據(jù)。
? ? ? ? 解決方案是要么保證數(shù)據(jù)的一致性,此時(shí)未同步數(shù)據(jù)的節(jié)點(diǎn)不返回?cái)?shù)據(jù),即不可用;
? ? ? ? 要么保證系統(tǒng)的可用性,即不同節(jié)點(diǎn)返回?cái)?shù)據(jù)可能不一致;
BASE理論
? ? ? ? 隨著現(xiàn)代系統(tǒng)復(fù)雜度的提高,只實(shí)現(xiàn)一致性或可用性已經(jīng)無法很好的滿足用戶的需要;并且隨著一些技術(shù)的進(jìn)步,一致性和可用性也并非無法同時(shí)使用,此時(shí)就提出了BASE理論。
BASE理論是基本可用(Basically Available )、軟狀態(tài)(Soft state)和最終一致性(Eventually consistent )的簡稱。
? ? ? ? BASE理論是指:通過特殊的手段來權(quán)衡一致性和可用性,使系統(tǒng)能夠滿足基本可用(Basically Available )和最終一致性(Eventually consistent )。
基本可用
? ? ? ? 指的是當(dāng)系統(tǒng)發(fā)生故障時(shí),犧牲一部分的可用性,來保證系統(tǒng)能夠基本運(yùn)行;相比正常的系統(tǒng),區(qū)別可能是響應(yīng)時(shí)間變長、服務(wù)降級等。
????????例如:系統(tǒng)響應(yīng)時(shí)間由正常的0.1s提升至2s;或者由正常的服務(wù)響應(yīng)降級到體驗(yàn)感稍差的服務(wù)頁面。
軟狀態(tài)
? ? ? ? 系統(tǒng)中不同節(jié)點(diǎn)的狀態(tài)可以是暫時(shí)不一致的,不要求實(shí)時(shí)同步,這給系統(tǒng)帶來了很大的靈活性和可用性。
最終一致性
? ? ? ? CAP理論中的一致性指的是強(qiáng)一致性,即修改一個(gè)節(jié)點(diǎn)中的數(shù)據(jù)之后,查詢?nèi)我夤?jié)點(diǎn)的數(shù)據(jù)都是最新的數(shù)據(jù);
????????而最終一致性是指:修改一個(gè)節(jié)點(diǎn)的數(shù)據(jù)之后,經(jīng)過一段時(shí)間,查詢?nèi)我夤?jié)點(diǎn)的數(shù)據(jù)都是最新的數(shù)據(jù);在這段時(shí)間中,系統(tǒng)處于軟狀態(tài),查詢的數(shù)據(jù)可能是舊數(shù)據(jù)也可能是新數(shù)據(jù);但是過了這段時(shí)間,系統(tǒng)處于硬狀態(tài)時(shí),就要保證各節(jié)點(diǎn)的強(qiáng)一致了。
? ? ? ? 實(shí)現(xiàn)最終一致性的方式:消息隊(duì)列、定時(shí)任務(wù)、人工補(bǔ)償?shù)?#xff1b;
結(jié)論
? ? ? ? 總的來說,BASE理論是通過對一致性和可用性的權(quán)衡來使系統(tǒng)的功能更廣泛,并且提高了用戶的使用體驗(yàn)。