CAP定理最初是作为CAP原理引入的,可用于解释具有复制的分布式系统中的一些竞争要求。它是用于使系统设计人员在设计网络共享数据系统时意识到折衷方案的工具。
CAP中的三个字母表示具有复制数据的分布式系统的三个理想属性:一致性(在复制副本中),系统对读取和写入操作的可用性)以及系统中被节点分区的节点的分区容忍度网络故障)。
CAP定理指出,在具有数据复制的分布式系统中,不可能同时保证所有这三个理想的属性–一致性,可用性和分区容限。
该定理指出,网络共享数据系统只能强烈支持以下三个属性中的两个:
- 一致性 –
一致性意味着节点将具有对各种事务可见的复制数据项的相同副本。确保分布式群集中的每个节点都返回相同的最新成功写入。一致性是指每个客户端具有相同的数据视图。有多种类型的一致性模型。 CAP中的一致性是指顺序一致性,这是非常强大的一致性形式。 - 可用性 –
可用性意味着对数据项的每个读或写请求将被成功处理,或者将收到一条消息,表明操作无法完成。每个非失败节点都会在合理的时间内返回所有读取和写入请求的响应。这里的关键词是每一个。为了可用,网络分区两侧的每个节点必须能够在合理的时间内做出响应。 - 分区容忍–
分区容限意味着,如果连接节点的网络出现故障导致两个或多个分区,则每个分区中的节点只能相互通信,则系统可以继续运行。这意味着,尽管存在网络分区,系统仍可继续函数并坚持其一致性保证。网络分区已成事实。分区恢复后,保证分区容限的分布式系统可以从分区中正常恢复。
在CAP中使用单词一致性和在ACID中使用不是指相同的相同概念。
在CAP中,术语一致性是指复制的分布式系统中同一数据项的不同副本中的值的一致性。在ACID中,它是指事务不会违反数据库模式上指定的完整性约束的事实。