CAP定理也可以被称为CAP原则是分布式系统中的一个基础原则
C: Consistency 一致性
A: Availability 可用性
P: Partition tolerance 分区容错性
CAP的原则是三个元素最多同时实现其中两点,不可能三者兼顾
如何说明不可三者兼顾?
假设服务A和服务B是分布式中向外提供的服务接口(集群作用),A和B之间进行信息同步
首先A和B是不可能放在同一个地点,不然系统宕机A和B同时失去作用,所以P是必须保证的
当调用者C向服务A中写入数值,服务B取出调用者C写的数值时
如果满足一致性的情况下,就必须等待服务A和服务B之间同步完成,等待的过程中服务不可用
如果满足可用性的话,那么服务B中取出来的值是原始值,不是C写入的值,此时就不满足一致性
如何进行取舍?
P(partition tolerance)是分布式设计的理念,舍弃了它就是舍弃了系统的扩展,就违背
了分布式设计的初衷。所有一个会有两种实现:
CP:保证了一致性,在一些对于数据一致性要求较高的场所使用,不过当发生网络延迟,消息丢失
等情况时,牺牲了用户的体验度。
AP:保证了可用性,但是并不代表丢弃了一致性,这是一种缓慢的一致性,同步的慢但是总会同步
正义也许会迟到,但是正义却不会缺席。