分布式-CAP與ACID原則

來源:互聯網
上載者:User

標籤:cap   acid   分布式   

        CAP、ACID對於深入理解分布式環境下技術方案設計選型有重要的指導作用,所以這裡做了下整理。

1.  CAP原則

       1.1 定義

       CAP是“Consistency,Avalilability, Partition Tolerance”的一種簡稱,其內容分別是:

       (1)強一致性:即在分布式系統中的同一資料多副本情形下,對於資料的更新操作體現出的效果與只有單份資料是一樣的。

       (2)可用性:用戶端在任何時刻對大規模資料系統的讀/寫操作都應該保證在限定延時內完成;

       (3)分區容忍性:在大規模分布式資料系統中,網路磁碟分割現象,即分區間的機器無法進行網路通訊的情況是必然發生的,所以系統應該能夠在這種情況下仍然繼續工作。

       對於一個大規模分布式資料系統來說,CAP三要素是不可兼得的,同一系統至多隻能實現其中的兩個,而必須放寬第3個要素來保證其他兩個要素被滿足。一般在網路環境下,運行環境出現網路磁碟分割是不可避免的,所以系統必須具備分區容忍性(P)特性,所以在一般在這種情境下設計大規模分布式系統時,往往在AP和CP中進行權衡和選擇。

       1.2 為什麼分布式環境下CAP三者不可兼得呢?

       由於上面已經提到對於分布式環境下,P是必須要有的,所以該問題可以轉化為:如果P已經得到,那麼C和A是否可以兼得?可以分為兩種情況來進行推演:

       (1) 如果在這個分布式系統中資料沒有副本,那麼系統必然滿足強一致性條件,因為只有獨本資料,不會出現資料不一致的問題,此時C和P都具備。但是如果某些服務

器宕機,那必然會導致某些資料是不能訪問的,那A就不符合了。

        (2) 如果在這個分布式系統中資料是有副本的,那麼如果某些伺服器宕機時,系統還是可以提供服務的,即符合A。但是很難保證資料的一致性,因為宕機的時候,可能

有些資料還沒有拷貝到副本中,那麼副本中提供的資料就不準確了。

        所以一般情況下,會根據具體業務來側重於C或者A,對於一致性要求比較高的業務,那麼對訪問延遲時間要求就會低點;對於訪問延時有要求的業務,那麼對於資料一致性要求就會低點。一致性模型主要可以分為下面幾類:強一致性、弱一致性、最終一致性、因果一致性、讀你所寫一致性、會話一致性、單調讀一致性、以及單調寫一致性,所以需要根據不同的業務選擇合適的一致性模型。

2. ACID原則

         ACID是關係型資料庫系統採納的原則,其代表的含義分別是:

         (1) 原子性(Atomicity):是指一個事務要麼全部執行,要麼完全不執行。

         (2) 一致性(Consistency): 事務在開始和結束時,應該始終滿足一致性約束。比如系統要求A+B=100,那麼事務如果改變了A的數值,則B的數值也要相應修改來滿足這樣一致性要求;與CAP中的C代表的含義是不同的。

         (3) 事務獨立(Isolation):如果有多個事務同時執行,彼此之間不需要知曉對方的存在,而且執行時互不影響,事務之間需要序列化執行,有時間順序。

         (4) 持久性(Durability):事務的持久性是指事務運行成功以後,對系統狀態的更新是永久的,不會無緣無故復原撤銷。

分布式-CAP與ACID原則

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.