数据一致性(CAP原则)

时间:2025-02-07 07:57:59

数据一致性

当说到集群的时候,就无法不提到数据一致性的问题。

分布式下,有一个著名的CAP原则。C指数据一致性,A指服务可用性,P则是分区容忍性。CAP三者,最多可得其二。如在单点服务中,由于不存在分区,则可达到CA。而在分布式服务里,基于分布式本身的特性,服务存在于多个服务中,依靠网络连接。在这种情况下,由于网络延迟等原因,分区是必然存在的。也就是说,在分布式下,P必然存在,任何集群都需要在C和A中做选择。

在这样的背景下,根据选择的不同,集群服务可能是AP的,也可能是CP的。如果是AP的,则集群允许在段时间里,各节点的数据出现不一致的情况,但是集群整体服务保持可用。如果是CP的,则集群在各节点数据不一致的段时间里,整体服务是不可用的,需要等待可节点数据同步到一致,再恢复可用状态。

需要理解的是,无论是AP还是CP,对于客户端来说,可能感知并不是很强烈。在AP情况下,客户端的感知可能是服务存在一定延迟,响应较慢,而不是服务不可用。在CP情况下,客户端一般来说对数据的更新是不敏感的。即客户端并不需要过分及时的取得最新的数据,也可以正常完成服务。