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