您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“cap定理如何理解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“cap定理如何理解”吧!
CAP定理是設計分布式系統(tǒng)的基礎。
CAP定理指出分布式系統(tǒng)不能同時滿足以下三個點:
1.一致性(Consistent)
2.可用性(Availability)
3.分區(qū)容忍性(Partition Tolerance)
這三點對于設計分布式的web services是非常重要的。
這里先說一下這三點的含義,要理解它們的含義,首先需要知道CAP定理提出時是針對分布式的web services系統(tǒng),這樣一個系統(tǒng)是由N多節(jié)點構(gòu)成,為了便于說明,我們假定系統(tǒng)只有兩個節(jié)點{N1,N2}。
一致性是說在節(jié)點上的操作是原子性的,對一個節(jié)點上的數(shù)據(jù)的修改,在所有節(jié)點上同步,這期間不能有其他操作。比如一個在N1上的write操作,必須是原子性的,也即在N1寫完并同時同步到N2上,這整個過程是原子性的,在這個寫的過程中不能有讀的操作,否則可能讀到不一致的結(jié)果(例如N1修改完數(shù)據(jù)但N2還未同步)。
可用性是指節(jié)點一旦接受到請求(比如web request),必須給予 回應。回應的內(nèi)容可以是成功取到的數(shù)據(jù)或者失敗消息。比如N1接到一個請求,必須返回一個請求結(jié)果或者失敗結(jié)果,如果不給予任何回應,就違背了可用性。
分區(qū)容忍性是指允許節(jié)點間丟失任何消息。節(jié)點間的通信會發(fā)送消息,這些消息在網(wǎng)絡中可能會丟失,這是客觀存在的。比如N1和N2在一個局域網(wǎng)里相互發(fā)送消息,不管使用什么協(xié)議(tcp,udp等),兩者之間都可能丟失消息包,理論上最壞情況會丟掉所有的包。
所以CAP定理是說,分布式系統(tǒng)在有消息丟失的網(wǎng)絡節(jié)點間不可能同時保證操作的原子性以及對請求必定給予回應這一特性。例如滿足原子性不能滿足可用性的情況:在N1上寫數(shù)據(jù),N2需要同步數(shù)據(jù),假設N1和N2之間的消息全部丟失(最壞的情況),此時N2上的數(shù)據(jù)不一致,要保證這個寫操作的原子性,需要等到N2上的數(shù)據(jù)同步完成,此時其他操作都不能進行,節(jié)點接受的請求不能給予回應,系統(tǒng)滿足不了可用性。
到此,相信大家對“cap定理如何理解”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。