女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    35

    瀏覽量

    25751
  • CAP平臺
    +關注

    關注

    0

    文章

    4

    瀏覽量

    8378

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    芯片架構設計的關鍵要素

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

    GPU服務器AI網絡架構設

    眾所周知,在大型模型訓練中,通常采用每臺服務器配備多個GPU的集群架構。在上一篇文章《高性能GPU服務器AI網絡架構(上篇)》中,我們對GPU網絡中的核心術語與概念進行了詳盡介紹。本文將進一步深入探討常見的GPU系統架構
    的頭像 發表于 11-05 16:20 ?1019次閱讀
    GPU服務器AI網絡<b class='flag-5'>架構設</b>計

    深入理解 Llama 3 的架構設

    在人工智能領域,對話系統的發展一直是研究的熱點之一。隨著技術的進步,我們見證了從簡單的基于規則的系統到復雜的基于機器學習的模型的轉變。Llama 3,作為一個假設的先進對話系統,其架構設計融合了
    的頭像 發表于 10-27 14:41 ?1071次閱讀

    邊緣計算架構設計最佳實踐

    邊緣計算架構設計最佳實踐涉及多個方面,以下是一些關鍵要素和最佳實踐建議: 一、核心組件與架構設計 邊緣設備與網關 邊緣設備 :包括各種嵌入式設備、傳感器、智能手機、智能攝像頭等,負責采集原始數據
    的頭像 發表于 10-24 14:17 ?961次閱讀

    架構與設計 常見微服務分層架構的區別和落地實踐

    架構風格越傾向于清晰的職責定位,且讓領域模型成為架構的核心。 基于這些架構風格,在軟件架構設計過程中又有非常多的架構分層模型。 傳統三層
    的頭像 發表于 10-22 15:34 ?551次閱讀
    <b class='flag-5'>架構</b>與設計 常見微服務分層<b class='flag-5'>架構</b>的區別和落地實踐

    使用混合輸出電容器進行D-CAP2?和D-CAP3?環路分析

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

    測量D-CAP?、D-CAP2?和D-CAP3? DC/DC轉換器的波特圖

    電子發燒友網站提供《測量D-CAP?、D-CAP2?和D-CAP3? DC/DC轉換器的波特圖.pdf》資料免費下載
    發表于 08-26 10:08 ?0次下載
    測量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轉換器的波特圖

    CAP 定理:理論、實踐

    CAP 定理,也稱為布魯爾定理,是由計算機科學家 Eric Brewer 于 2000 年提出的理論,2002 年被 Seth Gilbert 和 Nancy Lynch 嚴格證明。該定理
    的頭像 發表于 08-19 11:27 ?550次閱讀

    疊加定理時受控源怎么處理

    疊加定理是電路分析中的一個重要定理,它允許我們通過將電路分解為多個簡單的部分來求解復雜電路的電壓和電流。然而,當電路中包含受控源時,疊加定理的應用需要一些特殊的處理。 1. 疊加定理
    的頭像 發表于 07-29 14:52 ?3731次閱讀

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

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

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

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

    疊加定理電壓源單獨作用時電流源代表什么

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

    戴維南和諾頓定理的適用條件

    戴維南和諾頓定理是電路分析中非常重要的兩個定理,它們提供了一種簡化復雜電路的方法。 戴維南定理 戴維南定理(Thevenin's Theorem)是一種用于簡化線性雙端網絡的
    的頭像 發表于 07-12 09:57 ?3746次閱讀

    戴維南和諾頓定理的應用場合

    戴維南和諾頓定理是電路分析中的兩個重要定理,它們在許多應用場合中都發揮著重要作用。以下是對戴維南和諾頓定理應用場合的分析。 電路簡化 戴維南和諾頓定理的主要應用之一是電路簡化。在復雜的
    的頭像 發表于 07-12 09:55 ?2333次閱讀

    戴維南和諾頓定理適用于什么電路

    戴維南定理(Thevenin's Theorem)和諾頓定理(Norton's Theorem)是電路分析中非常重要的兩個定理,它們提供了一種將復雜電路簡化為等效電路的方法,從而方便我們進行電路
    的頭像 發表于 07-12 09:50 ?2943次閱讀