99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

架構(gòu)設(shè)計(jì)之 CAP 定理

Linux愛(ài)好者 ? 來(lái)源:fqj ? 2019-05-07 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在計(jì)算機(jī)領(lǐng)域,如果是初入行就算了,如果是多年的老碼農(nóng)還不懂 CAP 定理,那就真的說(shuō)不過(guò)去了。CAP可是每一名技術(shù)架構(gòu)師都必須掌握的基礎(chǔ)原則啊。

現(xiàn)在只要是稍微大一點(diǎn)的互聯(lián)網(wǎng)項(xiàng)目都是采用 分布式 結(jié)構(gòu)了,一個(gè)系統(tǒng)可能有多個(gè)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都可能需要維護(hù)一份數(shù)據(jù)。那么如何維護(hù)各個(gè)節(jié)點(diǎn)之間的狀態(tài),如何保障各個(gè)節(jié)點(diǎn)之間數(shù)據(jù)的同步問(wèn)題就是大家急需關(guān)注的事情了。

CAP定理是分布式系統(tǒng)中最基礎(chǔ)的原則。所以理解和掌握了CAP,對(duì)系統(tǒng)架構(gòu)的設(shè)計(jì)至關(guān)重要。

一、什么是 CAP?

「 CAP定理 」又被稱(chēng)為 布魯爾定理,它提出對(duì)于一個(gè)分布式系統(tǒng)而言,不能同時(shí)滿足以下三點(diǎn):

Consisteny(一致性)

Availability(可用性)

Partition tolerance(分區(qū)容錯(cuò)性)

也就是說(shuō)CAP定理指明了,任何分布式系統(tǒng)只能同時(shí)滿足這三項(xiàng)中的兩項(xiàng)。

架構(gòu)設(shè)計(jì)之 CAP 定理

如上圖,如果是最多同時(shí)滿足兩項(xiàng),那我們可以有三個(gè)組合:CA、CP、AP。在聊這三個(gè)組合之前,我們先分別看一下 Consisteny(一致性)、Availability(可用性)、Partition tolerance(分區(qū)容錯(cuò)性)的含義。

假設(shè)某個(gè)系統(tǒng)當(dāng)前有兩個(gè)節(jié)點(diǎn)A和B,兩個(gè)節(jié)點(diǎn)分別可以由Actor進(jìn)行讀寫(xiě),兩個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)會(huì)自動(dòng)完成同步。

架構(gòu)設(shè)計(jì)之 CAP 定理

Consisteny(一致性)

一致性的要求是指,對(duì)于任何客戶端(上圖Actor)來(lái)說(shuō),每次的讀操作,都能獲得最新的數(shù)據(jù)。即,當(dāng)有客戶端向A節(jié)點(diǎn)寫(xiě)入了新數(shù)據(jù)之后,其它客戶端從B節(jié)點(diǎn)中進(jìn)行讀操作所獲得的數(shù)據(jù)必須也是最新的,是與A節(jié)點(diǎn)數(shù)據(jù)保持一致的。

Availability(可用性)

可用性的要求是指,每個(gè)請(qǐng)求都能在合理的時(shí)間內(nèi)獲得符合預(yù)期的響應(yīng)(不保證獲取的結(jié)果是最新的數(shù)據(jù))。

按照上圖來(lái)看就是,客戶端只要向A節(jié)點(diǎn)或B節(jié)點(diǎn)發(fā)起請(qǐng)求后,只要這兩個(gè)節(jié)點(diǎn)收到了請(qǐng)求,就必須響應(yīng)給客戶端,但不需要保證響應(yīng)的值是否正確。

Partition tolerance(分區(qū)容錯(cuò)性)

分區(qū)容錯(cuò)性是指,當(dāng)節(jié)點(diǎn)之間的網(wǎng)絡(luò)出現(xiàn)問(wèn)題之后,系統(tǒng)依然能正常提供服務(wù)。

講完了C、A、P的含義和要求,我們繼續(xù)來(lái)看看它們之間如何組合使用。

二、CAP 怎么應(yīng)用?

先把視野回到這張圖上:

架構(gòu)設(shè)計(jì)之 CAP 定理

雖然我們知道有 CA、CP、AP 三種組合方式,但是在分布式系統(tǒng)的結(jié)構(gòu)下,網(wǎng)絡(luò)是不可能做到100%可靠的。既然網(wǎng)絡(luò)不能保證絕對(duì)可靠,那 P(分區(qū)容錯(cuò)性)就是一個(gè)必選項(xiàng)了。原因如下:

如果選擇 CA組合,放棄 P(分區(qū)容錯(cuò)性)。還是以最上面的圖中A和B節(jié)點(diǎn)來(lái)舉例,當(dāng)發(fā)生節(jié)點(diǎn)間網(wǎng)絡(luò)故障時(shí),為了保證 C(一致性),那么就必須將系統(tǒng)鎖住,不允許任何寫(xiě)入操作,否者就會(huì)出現(xiàn)節(jié)點(diǎn)之間數(shù)據(jù)不一致了。但是鎖住了系統(tǒng),就意味著當(dāng)有寫(xiě)請(qǐng)求進(jìn)來(lái)的時(shí)候,系統(tǒng)是不可用的,這一點(diǎn)又違背了 A(可用性)原則。

因此分布式系統(tǒng)理論上是不可能有CA組合的,所以我們只能選擇 CP 和 AP組合架構(gòu)。

下面我們來(lái)詳細(xì)看一下 CP架構(gòu) 和 AP架構(gòu)的特點(diǎn):

CP 架構(gòu)

CP架構(gòu)即 Consisteny(一致性)與 Partition tolerance(分區(qū)容錯(cuò)性)的組合。

架構(gòu)設(shè)計(jì)之 CAP 定理

如上圖,由于網(wǎng)絡(luò)問(wèn)題,節(jié)點(diǎn)A和節(jié)點(diǎn)B之前不能互相通訊。當(dāng)有客戶端(上圖Actor)向節(jié)點(diǎn)A進(jìn)行寫(xiě)入請(qǐng)求時(shí)(準(zhǔn)備寫(xiě)入Message 2),節(jié)點(diǎn)A會(huì)不接收寫(xiě)入操作,導(dǎo)致寫(xiě)入失敗,這樣就保證了節(jié)點(diǎn)A和節(jié)點(diǎn)B的數(shù)據(jù)一致性,即保證了Consisteny(一致性)。

然后,如果有另一個(gè)客戶端(上圖另一個(gè)Actor)向B節(jié)點(diǎn)進(jìn)行讀請(qǐng)求的時(shí)候,B請(qǐng)求返回的是網(wǎng)絡(luò)故障之前所保存的信息(Message 1),并且這個(gè)信息是與節(jié)點(diǎn)A一致的,是整個(gè)系統(tǒng)最后一次成功寫(xiě)入的信息,是能正常提供服務(wù)的,即保證了Partition tolerance(分區(qū)容錯(cuò)性)。

上述情況就是保障了CP架構(gòu),但放棄了Availability(可用性)的方案。

AP 架構(gòu)

AP架構(gòu)即 Availability(可用性)與 Partition tolerance(分區(qū)容錯(cuò)性)的組合架構(gòu)。

架構(gòu)設(shè)計(jì)之 CAP 定理

如上圖,由于網(wǎng)絡(luò)問(wèn)題,節(jié)點(diǎn)A和節(jié)點(diǎn)B之前不能互相通訊。當(dāng)有客戶端(上圖Actor)向節(jié)點(diǎn)A進(jìn)行寫(xiě)入請(qǐng)求時(shí)(準(zhǔn)備寫(xiě)入Message 2),節(jié)點(diǎn)A允許寫(xiě)入,請(qǐng)求操作成功。但此時(shí),由于A和B節(jié)點(diǎn)之前無(wú)法通訊,所以B節(jié)點(diǎn)的數(shù)據(jù)還是舊的(Message 1)。當(dāng)有客戶端向B節(jié)點(diǎn)發(fā)起讀請(qǐng)求時(shí)候,讀到的數(shù)據(jù)是舊數(shù)據(jù),與在A節(jié)點(diǎn)讀到的數(shù)據(jù)不一致。但由于系統(tǒng)能照常提供服務(wù),所以滿足了Availability(可用性)要求。

因此,這種情況下,就是保障了AP架構(gòu),但其放棄了 Consisteny(一致性)。

三、CAP 注意事項(xiàng)?

了解了CAP定理后,對(duì)于開(kāi)發(fā)者而言,當(dāng)我們構(gòu)建服務(wù)的時(shí)候,就需要根據(jù)業(yè)務(wù)特性作出權(quán)衡考慮,哪些點(diǎn)是當(dāng)前系統(tǒng)可以取舍的,哪些是應(yīng)該重點(diǎn)保障的。

即使是在同一個(gè)系統(tǒng)中,不同模塊的數(shù)據(jù)可能應(yīng)用的CAP架構(gòu)都是不同的。舉個(gè)例子,在某個(gè)電商系統(tǒng)中,屬于用戶模塊的數(shù)據(jù)(賬密、錢(qián)包余額等)對(duì)一致性的要求很高,就可以采用CP架構(gòu)。而對(duì)于一些商品信息方面的數(shù)據(jù)對(duì)一致性要求沒(méi)那么高,但為了照顧用戶體驗(yàn),所以對(duì)可用性要求更高一些,那么這個(gè)模塊的數(shù)據(jù)就可以采用AP架構(gòu)。

另外,雖然上面第二節(jié)講到過(guò)我們只能選擇CP和AP,無(wú)法選擇CA。但這句話成立的前提條件是在系統(tǒng)發(fā)生了網(wǎng)絡(luò)故障的情況下。然而,網(wǎng)絡(luò)故障的概率在系統(tǒng)的整個(gè)生命周期中占比是很小的,因此我們?cè)谠O(shè)計(jì)的時(shí)候,雖然要考慮網(wǎng)絡(luò)問(wèn)題下的方案,但也要考慮網(wǎng)絡(luò)正常情況下的方案,即在網(wǎng)絡(luò)正常情況下,CA是可以實(shí)現(xiàn)的,我們也需要去保證在絕大多數(shù)時(shí)間下的CA架構(gòu)。

再者,即使我們按照CAP定理,三個(gè)中只能取其二,但不代表我們只需要保障其中的兩點(diǎn),而完全的放棄第三點(diǎn),我們應(yīng)該為不能保障的第三點(diǎn)也做一些防備措施或者冗余方案,來(lái)使系統(tǒng)更加的完善健全。

以上,就是對(duì)CAP定理的一些思考。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • CP
    CP
    +關(guān)注

    關(guān)注

    3

    文章

    36

    瀏覽量

    25794
  • CAP平臺(tái)
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    8407

原文標(biāo)題:架構(gòu)設(shè)計(jì)之「 CAP 定理 」

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    光伏運(yùn)維管理系統(tǒng)架構(gòu)設(shè)計(jì)及其應(yīng)用分析

    開(kāi)展。 光伏運(yùn)維管理系統(tǒng)集成先進(jìn)的數(shù)據(jù)監(jiān)測(cè)、故障診斷、運(yùn)維任務(wù)管理等多種功能內(nèi)容,為光伏電站提供全面、高效、智能的運(yùn)維服務(wù)。其系統(tǒng)分層架構(gòu)設(shè)計(jì),覆蓋感知層、網(wǎng)絡(luò)層、平臺(tái)層和應(yīng)用層。感知層通過(guò)傳感器和攝像頭等設(shè)
    的頭像 發(fā)表于 06-10 11:34 ?209次閱讀
    光伏運(yùn)維管理系統(tǒng)<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)及其應(yīng)用分析

    用Manim動(dòng)畫(huà)生動(dòng)演示勾股定理

    作者:算力魔方創(chuàng)始人/英特爾創(chuàng)新大使劉力 一,引言 勾股定理是初中數(shù)學(xué)中最重要的幾何定理之一,它揭示了直角三角形三條邊之間的數(shù)量關(guān)系。傳統(tǒng)的靜態(tài)教學(xué)方式往往難以讓學(xué)生直觀理解這一定理的本質(zhì)。而使
    的頭像 發(fā)表于 04-27 16:36 ?261次閱讀

    芯片架構(gòu)設(shè)計(jì)的關(guān)鍵要素

    芯片架構(gòu)設(shè)計(jì)的目標(biāo)是達(dá)到功能、性能、功耗、面積(FPA)的平衡。好的芯片架構(gòu)能有效提升系統(tǒng)的整體性能,優(yōu)化功耗,并確保在成本和時(shí)間的限制下完成設(shè)計(jì)任務(wù)。
    的頭像 發(fā)表于 03-01 16:23 ?615次閱讀

    GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

    眾所周知,在大型模型訓(xùn)練中,通常采用每臺(tái)服務(wù)器配備多個(gè)GPU的集群架構(gòu)。在上一篇文章《高性能GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)(上篇)》中,我們對(duì)GPU網(wǎng)絡(luò)中的核心術(shù)語(yǔ)與概念進(jìn)行了詳盡介紹。本文將進(jìn)一步深入探討常見(jiàn)的GPU系統(tǒng)架構(gòu)。
    的頭像 發(fā)表于 11-05 16:20 ?1225次閱讀
    GPU服務(wù)器AI網(wǎng)絡(luò)<b class='flag-5'>架構(gòu)設(shè)</b>計(jì)

    深入理解 Llama 3 的架構(gòu)設(shè)計(jì)

    在人工智能領(lǐng)域,對(duì)話系統(tǒng)的發(fā)展一直是研究的熱點(diǎn)之一。隨著技術(shù)的進(jìn)步,我們見(jiàn)證了從簡(jiǎn)單的基于規(guī)則的系統(tǒng)到復(fù)雜的基于機(jī)器學(xué)習(xí)的模型的轉(zhuǎn)變。Llama 3,作為一個(gè)假設(shè)的先進(jìn)對(duì)話系統(tǒng),其架構(gòu)設(shè)計(jì)融合了
    的頭像 發(fā)表于 10-27 14:41 ?1210次閱讀

    邊緣計(jì)算架構(gòu)設(shè)計(jì)最佳實(shí)踐

    邊緣計(jì)算架構(gòu)設(shè)計(jì)最佳實(shí)踐涉及多個(gè)方面,以下是一些關(guān)鍵要素和最佳實(shí)踐建議: 一、核心組件與架構(gòu)設(shè)計(jì) 邊緣設(shè)備與網(wǎng)關(guān) 邊緣設(shè)備 :包括各種嵌入式設(shè)備、傳感器、智能手機(jī)、智能攝像頭等,負(fù)責(zé)采集原始數(shù)據(jù)
    的頭像 發(fā)表于 10-24 14:17 ?1101次閱讀

    架構(gòu)與設(shè)計(jì) 常見(jiàn)微服務(wù)分層架構(gòu)的區(qū)別和落地實(shí)踐

    架構(gòu)風(fēng)格越傾向于清晰的職責(zé)定位,且讓領(lǐng)域模型成為架構(gòu)的核心。 基于這些架構(gòu)風(fēng)格,在軟件架構(gòu)設(shè)計(jì)過(guò)程中又有非常多的架構(gòu)分層模型。 傳統(tǒng)三層
    的頭像 發(fā)表于 10-22 15:34 ?651次閱讀
    <b class='flag-5'>架構(gòu)</b>與設(shè)計(jì) 常見(jiàn)微服務(wù)分層<b class='flag-5'>架構(gòu)</b>的區(qū)別和落地實(shí)踐

    使用混合輸出電容器進(jìn)行D-CAP2?和D-CAP3?環(huán)路分析

    電子發(fā)燒友網(wǎng)站提供《使用混合輸出電容器進(jìn)行D-CAP2?和D-CAP3?環(huán)路分析.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 09:29 ?0次下載
    使用混合輸出電容器進(jìn)行D-<b class='flag-5'>CAP</b>2?和D-<b class='flag-5'>CAP</b>3?環(huán)路分析

    測(cè)量D-CAP?、D-CAP2?和D-CAP3? DC/DC轉(zhuǎn)換器的波特圖

    電子發(fā)燒友網(wǎng)站提供《測(cè)量D-CAP?、D-CAP2?和D-CAP3? DC/DC轉(zhuǎn)換器的波特圖.pdf》資料免費(fèi)下載
    發(fā)表于 08-26 10:08 ?0次下載
    測(cè)量D-<b class='flag-5'>CAP</b>?、D-<b class='flag-5'>CAP</b>2?和D-<b class='flag-5'>CAP</b>3? DC/DC轉(zhuǎn)換器的波特圖

    CAP 定理:理論、實(shí)踐

    CAP 定理,也稱(chēng)為布魯爾定理,是由計(jì)算機(jī)科學(xué)家 Eric Brewer 于 2000 年提出的理論,2002 年被 Seth Gilbert 和 Nancy Lynch 嚴(yán)格證明。該定理
    的頭像 發(fā)表于 08-19 11:27 ?655次閱讀

    受控電壓源在戴維南定理中的應(yīng)用

    戴維南定理(Thevenin's Theorem)是電路分析中的一個(gè)重要定理,它提供了一種將復(fù)雜電路簡(jiǎn)化為一個(gè)等效電路的方法。在實(shí)際應(yīng)用中,我們經(jīng)常會(huì)遇到受控電壓源(Controlled
    的頭像 發(fā)表于 07-29 15:04 ?1950次閱讀

    疊加定理時(shí)受控源怎么處理

    疊加定理是電路分析中的一個(gè)重要定理,它允許我們通過(guò)將電路分解為多個(gè)簡(jiǎn)單的部分來(lái)求解復(fù)雜電路的電壓和電流。然而,當(dāng)電路中包含受控源時(shí),疊加定理的應(yīng)用需要一些特殊的處理。 1. 疊加定理
    的頭像 發(fā)表于 07-29 14:52 ?4256次閱讀

    疊加定理電壓源和電流源怎么處理

    疊加定理是電路分析中的一個(gè)重要定理,它可以幫助我們分析復(fù)雜電路中的電壓和電流分布。在疊加定理中,電壓源和電流源的處理方式是不同的。下面我們將介紹疊加定理中電壓源和電流源的處理方法。 電
    的頭像 發(fā)表于 07-29 14:44 ?6485次閱讀

    疊加定理電壓源短路的處理

    疊加定理是電路分析中的一個(gè)重要定理,它可以幫助我們分析和計(jì)算復(fù)雜電路中的電壓和電流。 一、疊加定理的基本概念 疊加定理(Superposition Theorem)是電路分析中的一個(gè)基
    的頭像 發(fā)表于 07-29 14:39 ?2761次閱讀

    疊加定理電壓源單獨(dú)作用時(shí)電流源代表什么

    疊加定理是電路分析中的一個(gè)重要定理,它可以幫助我們分析復(fù)雜電路的行為。 1. 疊加定理簡(jiǎn)介 疊加定理是由德國(guó)物理學(xué)家赫爾曼·馮·亥姆霍茲(Hermann von Helmholtz)于
    的頭像 發(fā)表于 07-29 14:35 ?2113次閱讀