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 系统实际上不存在,由于分区问题老是会出如今分布式系统中同步

相关文章
相关标签/搜索