CAP定理(也称为布鲁尔定理)指出,分布式数据库系统只能保证这三个特性中的两个:一致性、可用性和分区容错性。
一致性
如果所有节点同时看到相同的数据,则称系统是一致的。
简单来说,如果我们在一致的系统上执行读操作,它应该返回最近的写操作的值。这意味着,读取应该导致所有节点返回相同的数据,即最近写入的值。
可用性
分布式系统中的可用性可确保系统 100% 的时间保持运行。无论节点的单独状态如何,每个请求都会获得(非错误)响应。
注意:这并不能保证响应包含最新的写入。
分区容错性
此条件表明,无论消息在系统中的节点之间是否丢失或延迟,系统都不会失败。
在分布式系统中,分区容错已经成为一种必需品,而不是一种选择。这是通过跨节点和网络的组合充分复制记录来实现的。