国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

架構設計之 CAP 定理

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

掃碼添加小助手

加入工程師交流群

在計算機領域,如果是初入行就算了,如果是多年的老碼農還不懂 CAP 定理,那就真的說不過去了。CAP可是每一名技術架構師都必須掌握的基礎原則啊。

現在只要是稍微大一點的互聯網項目都是采用 分布式 結構了,一個系統可能有多個節點組成,每個節點都可能需要維護一份數據。那么如何維護各個節點之間的狀態,如何保障各個節點之間數據的同步問題就是大家急需關注的事情了。

CAP定理是分布式系統中最基礎的原則。所以理解和掌握了CAP,對系統架構的設計至關重要。

一、什么是 CAP?

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

Consisteny(一致性)

Availability(可用性)

Partition tolerance(分區容錯性)

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

架構設計之 CAP 定理

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

假設某個系統當前有兩個節點A和B,兩個節點分別可以由Actor進行讀寫,兩個節點之間的數據會自動完成同步。

架構設計之 CAP 定理

Consisteny(一致性)

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

Availability(可用性)

可用性的要求是指,每個請求都能在合理的時間內獲得符合預期的響應(不保證獲取的結果是最新的數據)。

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

Partition tolerance(分區容錯性)

分區容錯性是指,當節點之間的網絡出現問題之后,系統依然能正常提供服務。

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

二、CAP 怎么應用?

先把視野回到這張圖上:

架構設計之 CAP 定理

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

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

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

下面我們來詳細看一下 CP架構 和 AP架構的特點:

CP 架構

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

架構設計之 CAP 定理

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

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

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

AP 架構

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

架構設計之 CAP 定理

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

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

三、CAP 注意事項?

了解了CAP定理后,對于開發者而言,當我們構建服務的時候,就需要根據業務特性作出權衡考慮,哪些點是當前系統可以取舍的,哪些是應該重點保障的。

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

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

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

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

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

    關注

    3

    文章

    37

    瀏覽量

    25968
  • CAP平臺
    +關注

    關注

    0

    文章

    4

    瀏覽量

    8459

原文標題:架構設計之「 CAP 定理 」

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入解析MIC2212:雙μCap LDO與上電復位電路的卓越

    深入解析MIC2212:雙μCap LDO與上電復位電路的卓越選 在電子設計領域,電源管理芯片的選擇至關重要,它直接影響著整個系統的性能和穩定性。今天,我們就來深入探討一款備受關注的電源管理芯片
    的頭像 發表于 03-05 17:05 ?52次閱讀

    X (Twitter) 推薦系統架構設計深度解析

    推薦系統到底是如何理解海量用戶與內容的?本期文章帶你深入 X (前 Twitter) 推薦算法庫的底層源碼。解構推薦系統關鍵的“漏斗型”架構——從高效的雙塔召回到復雜精妙的 Transformer
    的頭像 發表于 02-25 23:56 ?4734次閱讀

    MIC5310:雙路150mA μCap LDO穩壓器的卓越

    MIC5310:雙路150mA μCap LDO穩壓器的卓越選 在便攜式電子設備的電源管理領域,一款性能出色的低壓差線性穩壓器(LDO)至關重要。今天,我們就來深入了解一下Micrel公司推出
    的頭像 發表于 02-25 11:05 ?151次閱讀

    MIC5321:高性能雙路150 mA μCap超低壓差穩壓器的卓越

    MIC5321:高性能雙路150 mA μCap超低壓差穩壓器的卓越選 在電子設備的電源管理領域,找到一款性能卓越、尺寸小巧且成本合理的穩壓器至關重要。Microchip的MIC5321雙路超低壓
    的頭像 發表于 02-09 16:30 ?112次閱讀

    KEMET KO-CAP聚合物電容器:固態驅動器與高能應用的理想

    KEMET KO-CAP聚合物電容器:固態驅動器與高能應用的理想選 在電子工程師的日常工作中,選擇合適的電容器對于電路的性能和穩定性至關重要。今天,我們就來深入探討KEMET的有機
    的頭像 發表于 12-15 11:40 ?651次閱讀

    使用諾頓定理的等效電路分析

    本文將從諾頓定理的基本原理、具體求解方法,到與其他分析方法的區別,進行通俗易懂的介紹。同時,也將對諾頓定理的使用要點進行整理歸納。
    的頭像 發表于 12-10 13:59 ?4121次閱讀
    使用諾頓<b class='flag-5'>定理</b>的等效電路分析

    嵌入式軟件分層架構設計原則

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

    ?TE Connectivity KILOVAC CAP120R 高壓閉鎖接觸器技術解析與應用指南

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

    TensorRT-LLM的大規模專家并行架構設

    之前文章已介紹引入大規模 EP 的初衷,本篇將繼續深入介紹 TensorRT-LLM 的大規模專家并行架構設計與創新實現。
    的頭像 發表于 09-23 14:42 ?1101次閱讀
    TensorRT-LLM的大規模專家并行<b class='flag-5'>架構設</b>計

    光伏電站中應用的無人機AI巡檢系統架構設

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

    深入剖析RabbitMQ高可用架構設

    在微服務架構中,消息隊列故障導致的系統不可用率高達27%!如何構建一個真正可靠的消息中間件架構?本文將深入剖析RabbitMQ高可用設計的核心要點。
    的頭像 發表于 08-18 11:19 ?953次閱讀

    TPS51317 3.3V / 5V 輸入,6A,D-CAP+ 模式同步整流轉換器數據手冊

    TPS51317 是一款完全集成的同步降壓穩壓器 采用 D-CAP+ ? 模式架構。它用于 3.3V 和 5V 考慮空間的降壓系統、高性能和 需要優化的組件數量。
    的頭像 發表于 07-09 09:47 ?695次閱讀
    TPS51317 3.3V / 5V 輸入,6A,D-<b class='flag-5'>CAP</b>+ 模式同步整流轉換器數據手冊

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

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

    光伏運維管理系統架構設計及其應用分析

    開展。 光伏運維管理系統集成先進的數據監測、故障診斷、運維任務管理等多種功能內容,為光伏電站提供全面、高效、智能的運維服務。其系統分層架構設計,覆蓋感知層、網絡層、平臺層和應用層。感知層通過傳感器和攝像頭等設
    的頭像 發表于 06-10 11:34 ?664次閱讀
    光伏運維管理系統<b class='flag-5'>架構設</b>計及其應用分析

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

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