本篇內(nèi)容主要講解“cap定理如何理解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“cap定理如何理解”吧!
成都創(chuàng)新互聯(lián)公司網(wǎng)站設(shè)計,為客戶量身定制各類網(wǎng)站建設(shè)業(yè)務(wù),包括企業(yè)型、電子商務(wù)型、響應(yīng)式網(wǎng)站開發(fā)、行業(yè)門戶型等各類網(wǎng)站,實戰(zhàn)經(jīng)驗豐富,成功案例眾多。以客戶利益為出發(fā)點,成都創(chuàng)新互聯(lián)公司網(wǎng)站制作為客戶規(guī)劃、定制開發(fā)符合企業(yè)需求、帶有營銷價值的網(wǎng)絡(luò)建站方案認(rèn)真對待每一個客戶,我們不用口頭的語言來吹擂我們的優(yōu)秀,數(shù)千家的成功案例見證著我們的成長。
CAP定理是設(shè)計分布式系統(tǒng)的基礎(chǔ)。
CAP定理指出分布式系統(tǒng)不能同時滿足以下三個點:
1.一致性(Consistent)
2.可用性(Availability)
3.分區(qū)容忍性(Partition Tolerance)
這三點對于設(shè)計分布式的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),必須給予 回應(yīng)?;貞?yīng)的內(nèi)容可以是成功取到的數(shù)據(jù)或者失敗消息。比如N1接到一個請求,必須返回一個請求結(jié)果或者失敗結(jié)果,如果不給予任何回應(yīng),就違背了可用性。
分區(qū)容忍性是指允許節(jié)點間丟失任何消息。節(jié)點間的通信會發(fā)送消息,這些消息在網(wǎng)絡(luò)中可能會丟失,這是客觀存在的。比如N1和N2在一個局域網(wǎng)里相互發(fā)送消息,不管使用什么協(xié)議(tcp,udp等),兩者之間都可能丟失消息包,理論上最壞情況會丟掉所有的包。
所以CAP定理是說,分布式系統(tǒng)在有消息丟失的網(wǎng)絡(luò)節(jié)點間不可能同時保證操作的原子性以及對請求必定給予回應(yīng)這一特性。例如滿足原子性不能滿足可用性的情況:在N1上寫數(shù)據(jù),N2需要同步數(shù)據(jù),假設(shè)N1和N2之間的消息全部丟失(最壞的情況),此時N2上的數(shù)據(jù)不一致,要保證這個寫操作的原子性,需要等到N2上的數(shù)據(jù)同步完成,此時其他操作都不能進(jìn)行,節(jié)點接受的請求不能給予回應(yīng),系統(tǒng)滿足不了可用性。
到此,相信大家對“cap定理如何理解”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!