chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

一、什么是 CAP?

「 CAP定理 」又被稱為 布魯爾定理,它提出對于一個分布式系統(tǒng)而言,不能同時滿足以下三點:

Consisteny(一致性)

Availability(可用性)

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

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

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

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

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

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

Consisteny(一致性)

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

Availability(可用性)

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

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

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

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

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

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

先把視野回到這張圖上:

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

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

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

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

下面我們來詳細看一下 CP架構(gòu) 和 AP架構(gòu)的特點:

CP 架構(gòu)

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

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

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

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

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

AP 架構(gòu)

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

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

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

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

三、CAP 注意事項?

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

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

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

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

以上,就是對CAP定理的一些思考。

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

    關(guān)注

    3

    文章

    37

    瀏覽量

    25926
  • CAP平臺
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    8453

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    嵌入式軟件分層架構(gòu)設(shè)計原則

    嵌入式軟件分層架構(gòu)的設(shè)計原則如下: 模塊化和可擴展性:每一層應(yīng)當保持松耦合,這樣當硬件變化或某些功能擴展時,只需要修改對應(yīng)的層次,而不影響整體架構(gòu)。 硬件無關(guān)性:上層代碼應(yīng)當盡量避免直接依賴硬件
    發(fā)表于 11-28 07:05

    ?TE Connectivity KILOVAC CAP120R 高壓閉鎖接觸器技術(shù)解析與應(yīng)用指南

    TE Connectivity (TE)/Kilovac CAP120R高壓閉鎖接觸器滿足業(yè)界對更高電壓隔離、更小尺寸/重量和更低功耗的需求。就電壓和電流額定值來說,CAP120R屬于極小、重量極輕
    的頭像 發(fā)表于 11-07 15:05 ?262次閱讀

    分布式光伏環(huán)境監(jiān)測站的技術(shù)架構(gòu)與應(yīng)用實踐

    分布式光伏環(huán)境監(jiān)測站的技術(shù)架構(gòu)與應(yīng)用實踐 柏峰【BF-GFQX】一、系統(tǒng)技術(shù)架構(gòu)解析 分布式光伏環(huán)境監(jiān)測站采用“感知層-傳輸層-應(yīng)用層”三層架構(gòu)設(shè)計,實現(xiàn)環(huán)境數(shù)據(jù)的全鏈路智能化處理。
    的頭像 發(fā)表于 10-13 10:05 ?231次閱讀
    分布式光伏環(huán)境監(jiān)測站的技術(shù)<b class='flag-5'>架構(gòu)</b>與應(yīng)用實踐

    TensorRT-LLM的大規(guī)模專家并行架構(gòu)設(shè)

    之前文章已介紹引入大規(guī)模 EP 的初衷,本篇將繼續(xù)深入介紹 TensorRT-LLM 的大規(guī)模專家并行架構(gòu)設(shè)計與創(chuàng)新實現(xiàn)。
    的頭像 發(fā)表于 09-23 14:42 ?657次閱讀
    TensorRT-LLM的大規(guī)模專家并行<b class='flag-5'>架構(gòu)設(shè)</b>計

    光伏電站中應(yīng)用的無人機AI巡檢系統(tǒng)架構(gòu)設(shè)

    維護提供數(shù)據(jù)支持,在當下的電站運營中發(fā)揮著重要的作用。 從系統(tǒng)架構(gòu)設(shè)計方面來說,通過硬件層、軟件層以及云平臺層各層不同功能模塊部署設(shè)計,實現(xiàn)智能化的巡檢流程應(yīng)用。首先是硬件層,通過構(gòu)建無人機平臺適應(yīng)如沙漠、山地
    的頭像 發(fā)表于 09-02 14:13 ?226次閱讀
    光伏電站中應(yīng)用的無人機AI巡檢系統(tǒng)<b class='flag-5'>架構(gòu)設(shè)</b>計

    NUC972如何移動非作系統(tǒng) CAP (捕獲) 窗口開始地址?

    NUC972如何移動非作系統(tǒng) CAP (捕獲) 窗口開始地址?
    發(fā)表于 09-01 07:41

    深入剖析RabbitMQ高可用架構(gòu)設(shè)

    在微服務(wù)架構(gòu)中,消息隊列故障導(dǎo)致的系統(tǒng)不可用率高達27%!如何構(gòu)建一個真正可靠的消息中間件架構(gòu)?本文將深入剖析RabbitMQ高可用設(shè)計的核心要點。
    的頭像 發(fā)表于 08-18 11:19 ?690次閱讀

    TPS51317 3.3V / 5V 輸入,6A,D-CAP+ 模式同步整流轉(zhuǎn)換器數(shù)據(jù)手冊

    TPS51317 是一款完全集成的同步降壓穩(wěn)壓器 采用 D-CAP+ ? 模式架構(gòu)。它用于 3.3V 和 5V 考慮空間的降壓系統(tǒng)、高性能和 需要優(yōu)化的組件數(shù)量。
    的頭像 發(fā)表于 07-09 09:47 ?468次閱讀
    TPS51317 3.3V / 5V 輸入,6A,D-<b class='flag-5'>CAP</b>+ 模式同步整流轉(zhuǎn)換器數(shù)據(jù)手冊

    同一水平的 RISC-V 架構(gòu)的 MCU,和 ARM 架構(gòu)的 MCU 相比,運行速度如何?

    ARM 架構(gòu)與 RISC-V 架構(gòu)的 MCU 在同一性能水平下的運行速度對比,需從架構(gòu)設(shè)計原點、指令集特性及實際測試數(shù)據(jù)展開剖析。以 ARM Cortex-M33 這類 ARMv8M 架構(gòu)
    的頭像 發(fā)表于 07-02 10:29 ?1198次閱讀
    同一水平的 RISC-V <b class='flag-5'>架構(gòu)</b>的 MCU,和 ARM <b class='flag-5'>架構(gòu)</b>的 MCU 相比,運行速度如何?

    聚徽解碼——從嵌入式到模塊化:國內(nèi)工控平板的柔性技術(shù)架構(gòu)設(shè)

    在工業(yè) 4.0 與智能制造蓬勃發(fā)展的浪潮下,國內(nèi)工控平板作為工業(yè)自動化與智能化的關(guān)鍵設(shè)備,其技術(shù)架構(gòu)設(shè)計正經(jīng)歷著從嵌入式到模塊化的深刻變革。這一轉(zhuǎn)變旨在賦予工控平板更強的柔性,使其能夠更高效、靈活
    的頭像 發(fā)表于 06-13 16:24 ?402次閱讀

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

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

    用Manim動畫生動演示勾股定理

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

    設(shè)備遠程監(jiān)控與預(yù)測性維護系統(tǒng)架構(gòu)設(shè)計及應(yīng)用實踐

    本文探討了在工業(yè)4.0與數(shù)字化轉(zhuǎn)型背景下,設(shè)備管理系統(tǒng)從傳統(tǒng)人工巡檢向智能運維的深刻變革。文章從技術(shù)架構(gòu)、實施路徑和典型應(yīng)用三個方面深入解析了設(shè)備遠程監(jiān)控與預(yù)測性維護系統(tǒng)的實現(xiàn)方法。
    的頭像 發(fā)表于 04-15 10:16 ?835次閱讀
    設(shè)備遠程監(jiān)控與預(yù)測性維護系統(tǒng)<b class='flag-5'>架構(gòu)設(shè)</b>計及應(yīng)用實踐

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

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

    面向服務(wù)的整車EE架構(gòu)(SOA)設(shè)計開發(fā)咨詢服務(wù)

    經(jīng)緯恒潤多年來一直致力于為客戶提供先進電子電氣架構(gòu)解決方案,近年來,經(jīng)緯恒潤在國內(nèi)率先開展整車SOA架構(gòu)的技術(shù)研發(fā)和業(yè)務(wù)布局,參與多款SOA架構(gòu)下量產(chǎn)車型的研發(fā),積累了豐富的SOA架構(gòu)設(shè)
    的頭像 發(fā)表于 12-12 15:11 ?1254次閱讀
    面向服務(wù)的整車EE<b class='flag-5'>架構(gòu)</b>(SOA)設(shè)計開發(fā)咨詢服務(wù)