1. 程式人生 > >分散式系統中CAP理論的理解

分散式系統中CAP理論的理解

對於分散式系統瞭解的不是很多,今天學習了一下分散式系統中CAP,記錄一下,希望能對分散式系統的學習有所幫助

Consistency(一致性), 資料一致更新,所有資料變動都是同步的

Availability(可用性), 好的響應效能

Partition tolerance(分割槽容忍性) 可靠性

在網上看了很多資料,這裡給出自己的簡單理解

C:一致性,就是說所有的伺服器上面的資料都是一樣的,

A:可用性,使用者訪問伺服器上面的資料,響應時間在可以接受的範圍內

P:分割槽容錯性:理解為在存在網路分割槽的情況下,仍然可以接受請求(滿足一致性和可用性)。這裡的網路分割槽是指由於某種原因,網路被分成若干個孤立的區域,而區域之間互不相通。在網路中斷,訊息丟失的情況下,系統照樣能夠工作。 以實際效果而言,分割槽相當於對通訊的時限要求。系統如果不能在時限內達成資料一致性,就意味著發生了分割槽的情況,必須就當前操作在C和A之間做出選擇

高可用、資料一致是很多系統設計的目標,但是分割槽又是不可避免的事情:

  • CA without P:如果不要求P(不允許分割槽),則C(強一致性)和A(可用性)是可以保證的。但其實分割槽不是你想不想的問題,而是始終會存在,因此CA的系統更多的是允許分割槽後各子系統依然保持CA。
  • CP without A:如果不要求A(可用),相當於每個請求都需要在Server之間強一致,而P(分割槽)會導致同步時間無限延長,如此CP也是可以保證的。很多傳統的資料庫分散式事務都屬於這種模式。
  • AP wihtout C:要高可用並允許分割槽,則需放棄一致性。一旦分割槽發生,節點之間可能會失去聯絡,為了高可用,每個節點只能用本地資料提供服務,而這樣會導致全域性資料的不一致性。現在眾多的NoSQL都屬於此類。

        需要明確的一點是,對於一個分散式系統而言,分割槽容錯性是一個最基本的要求。因為 既然是一個分散式系統,那麼分散式系統中的元件必然需要被部署到不同的節點,否則也就無所謂分散式系統了,因此必然出現子網路。而對於分散式系統而言,網 絡問題又是一個必定會出現的異常情況,因此分割槽容錯性也就成為了一個分散式系統必然需要面對和解決的問題。因此係統架構師往往需要把精力花在如何根據業務 特點在C(一致性)和A(可用性)之間尋求平衡。

相關推薦

分散式系統CAP理論理解

對於分散式系統瞭解的不是很多,今天學習了一下分散式系統中CAP,記錄一下,希望能對分散式系統的學習有所幫助 Consistency(一致性), 資料一致更新,所有資料變動都是同步的 Availability(可用性), 好的響應效能 Partition toleranc

分散式工作筆記001---分散式系統CAP 定理的含義

    JAVA技術交流QQ群:170933152    分散式系統(distributed system)正變得越來越重要,大型網站幾乎都是分散式的。 分散式系統的最大難點,就是各個節點的狀態如何同步。CAP 定理是這方面的基本定

分散式系統CAP理論

2015-12-03 分類:分散式 閱讀(5194) 評論(2)  2000年7月,加州大學伯克利分校的Eric Brewer教授在ACM PODC會議上提出CAP猜想。2年後,麻省理工學院的Seth Gilbert和Nancy Lynch從理論上證明了CAP。之後,C

分散式系統CAP 理論的前世今生

CAP 理論是分散式系統設計中的一個重要理論,雖然它為系統設計提供了非常有用的依據,但是也帶來了很多誤解。本文將從 CAP 誕生的

看完這篇,保證讓你真正明白:分散式系統CAP理論CAP如何三選二

引言 CAP 理論,相信很多人都聽過,它是指: 一個分散式系統最多隻能同時滿足一致性(Consistency)、可用性(Availability)和分割槽容錯性(Partition tolerance)這三項中的兩項。 為什麼要理解 CAP 理論?我能說出很多理由來。如果是在職場上,也許最合適的理由是,當領導

分散式系統CAP理論與BASE理論

1、CAP理論:          Consistency(一致性)、 Availability(可用性)、Partition tolerance(分割槽容錯性)     分散式系統中的三個特性: &nbs

深入理解分散式系統的快取架構(上)

本文主要介紹大型分散式系統中快取的相關理論,常見的快取元件以及應用場景。 1 快取概述 2 快取的分類 快取主要分為以下四類 2.1 CDN快取 基本介紹 CDN(Content Delivery Network 內容分發網路)的基本原理是廣泛採用

大資料求索(12): 從傳統ACID到分散式系統CAP和BASE

大資料求索(12): 從ACID到CAP和BASE 一、關於ACID 關係型資料庫最強大的功能之一就是事務,能夠保證資料的強一致性。事務有如下幾個特性: 1.1 A(Atomicity) 原子性 原子性很容易理解,也就是說**事務裡的所有操作要麼全部做完,要麼都不做,事務

分散式系統CAP和BASE理論

CAP定理 一致性(Consistency) 在分散式環境中,一致性是指資料在多個副本之間是否能夠保持一致性的特性。 可用性(Availability) 可用性是指系統提供的服務必須一直處於可用的狀態,對於使用者的每一個操作請求總是能夠在有限的時間內返回結果。 分割

分散式系統CAP、ACID、BASE概念

[toc] # CAP 分散式系統中,這三個特性只能滿足其中兩個。 ## 一致性(Consistency) 分散式中一致性又分強一致性和弱一致性,強一致性主濁任何時刻任何節點看到的資料都是一樣的,弱一致性一* * 般實現的是最終一致性。 ## 可用性(Availability) 叢集在任何時間內都正常使用

Linux下分布式系統以及CAP理論分析

單機 osql 問題 實例 ase 均衡負載 sof rds 就是 CAP理論被很多人拿來作為分布式系統設計的金律,然而感覺大家對CAP這三個屬性的認識卻存在不少誤區,那麽什麽是CAP理論呢?CAP原本是一個猜想,2000年PODC大會的時候大牛Brewer提出的,他認

分散式資料庫CAP原理(CAP+BASE)

傳統的ACID 1)原子性(Atomicity): 事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功。 2)一致性(Consistency): 資料庫要一直處於一致的狀態,事務的執行不會改變資料庫原本的一致性約束。 3)獨立性(Isolation): 指併發的事務之

分散式系統處理引數配置的 4 種方案

一個系統中包含有各種各樣的配置資訊,如一個日誌檔案需要配置以下幾個資訊。 日誌檔案生成主目錄 日誌檔名稱,不同的日誌級別對應不同的檔案 當前日誌級別 還有其他各種業務引數、系統引數等,大多單一系統是直接把這些配置寫死在配置檔案中,當部署到測試、生產環境就再修

審計日誌在分散式系統的應用

前言分散式系統的執行環境往往是異常複雜的,很多情況涉及到多節點間的訊息通訊。相比較於單節點系統而言,分散式系統在問題追蹤,排查方面顯然也複雜很多。那麼這個時候,在分散式系統中,增加哪些型別的日誌資料,來幫助我們發現和定位問題呢?答案就是我們今天將要闡述的審計日誌(Audit log)。 審計日誌的概念很多人

分散式系統如何較好地做服務發現

前言 在分散式系統中的中心管理服務模式下,往往採用的模式是1個manager服務節點,多個worker節點,然後由manager來管控這些worker節點。但是本篇文章不是來講manager如何管理的問題,而是woker識別發現manager服務的問題。目前一種比較簡單的做法,

Java架構-在一個成熟的分散式系統 如何下手做高可用?

對於企業來說,隨著規模越來越大,整個系統中存在越來越多的子系統,每個子系統又被多個其他子系統依賴或者依賴於其他子系統。大部分系統在走到這一步的過程中,大概率會發生這樣的場景:作為某個子系統的負責人或者 OnCall 人員,休息的時候都不安穩,心裡老是忐忑著系統會不會掛。導致週末不敢長時間

分散式系統的冪等性

    我們的系統大多拆分為分散式SOA,或者微服務,一套系統中包含了多個子系統服務,而一個子系統服務往往會去呼叫另一個服務,而服務呼叫服務無非就是使用RPC通訊或者restful,既然是通訊,那麼就有可能再伺服器處理完畢後返回結果的時候掛掉,這個時候使用者端發現很久沒有反應

分散式系統的一致性hash初探

  在分散式式系統中,為了分散訪問壓力,每個模組需要由多個節點組成叢集,共同來提供服務,客戶端根據一定的負載均衡策略來訪問叢集的各個節點,由此引入了一些問題,如在訪問壓力增大的情況需要要增加節點,或是叢集其中的一個節點突然掛掉,如何將原有節點上的請求壓力重新負載到新的節點叢集上。   我們常用的負載均衡策略

【轉載】分散式系統的冪等性

 我們的系統大多拆分為分散式SOA,或者微服務,一套系統中包含了多個子系統服務,而一個子系統服務往往會去呼叫另一個服務,而服務呼叫服務無非就是使用RPC通訊或者restful,既然是通訊,那麼就有可能再伺服器處理完畢後返回結果的時候掛掉,這個時候使用者端發現很久沒有反應,那麼

Dubbo+Zookeeper架構—高階篇16—訊息中介軟體在分散式系統的作用及介紹

一、訊息中介軟體的定義        Message-orientedmiddleware (MOM) is software infrastructure focused on sending and receivingmessages between distribute