CAP 定理 —— 可用性 (Availability) 和分區容忍 (Partition tolerance)

分佈式系統如今變得愈來愈重要,CAP 定理描述了分佈式系統的固有特性,能幫助咱們更好地理解分佈式系統
文章翻譯自stackoverflow高贊回答,有能力的同窗建議看看原文
https://stackoverflow.com/que...網絡

Consistency 一致性
集羣中各個結點的數據老是一致的,所以你能夠向任意結點讀寫數據,並老是能獲得相同的數據分佈式

Availability 可用性
可用性表示你老是可以訪問集羣,即便集羣中的某個結點宕機了翻譯

Partition tolerance 分區容忍
容忍集羣持續運行,即便他們中存在分區(兩個分區中的結點都是好的,只是分區之間不能通訊)code

爲了能同時達到可用性和分區容忍,你必須放棄一致性。假設你的集羣中有兩個結點 X 和 Y,如今他們之間網絡通訊中斷了,所以他們再也不可以同步數據,這時你能夠做出以下選擇:rem

  • 容許結點之間不一樣步 (保可用性,放棄一致性),或者
  • 認爲集羣不可用 (保一致性,放棄可用性)

CAP不能同時成立,因此會出現如下三種組合get

  • Consistency & Availability:只要全部結點都在線,那麼結點中的數據都是一致的。你能夠向任意結點讀寫數據,並確信他們的數據都是相同的。但只要分區出現,數據將再也不同步 (P不成立,即不能容忍分區出現)
  • Consistency & Partition tolerance:要求全部結點的數據都是一致的。容忍分區出現,但當有部分結點 down 掉後 (分區出現時集羣會認爲是部分結點down掉),爲了不數據不一樣步,集羣會變成不可用
  • Availability & Partition tolerance:全部結點保持在線,即便他們之間存在分區不能相互通訊,當分區問題解決後再從新同步數據。因此你不能保證全部結點的數據都是一致的 (在分區出現期間或以後)

你能夠認爲 CA 系統實際上不存在,由於分區問題老是會出如今分佈式系統中同步

相關文章
相關標籤/搜索