CAP 原理
CAP原理描述的是一个分布式系统无法同时满足一致性(Consistency),可用性(Availability)和分区容忍性(Partition Tolerance)。
在一个分布式系统中,因为现实情况下网络中断必然会发生,所以我们一般会关注于CP和AP:即在一致性和可用性之间会选择其一作为起始侧重点。但是,这并不代表我们的系统整个生命周期中只能满足CP或者AP,只是表示在系统一个阶段或者一小段时间内,我们会首先确保一致性或者可用性,最终会同时满足两者。这也就是最终一致性的来源(Eventual Consistency)。
CP
CP表示系统选择数据一致性而暂时放弃可用性。
对于一个实现CP的系统而言,假设服务器节点node A的数据是x,服务器节点node B的数据是y,当一个用户访问node B的数据,用户会收到错误或者超时相应而不是y。这是因为当数据冲突发生时,此类系统无法忍受数据不一致,即使范围错误或者超时响应也不愿返回一个不一致当数据。
AP
AP表示系统选择可用性而暂时放弃数据一致性。
对于一个实现AP的系统而言,假设服务器节点node A的数据是x,服务器节点node B的数据是y,当一个用户访问node B的数据,用户会收到y而不是错误或者超时。这是因为当数据冲突发生时,此类系统可以接受数据不一致但是无法忍受系统的不可用(错误或者超时响应)。
最终一致性(Eventual Consistency)
在一个分布式系统的设计中,我们不是一定要放弃C或者A,而是可以最终实现CP和AP,这也就是最终一致性。
最终一致性系统描述的是一个系统首先保证高可用(AP)。假设服务器节点node A的数据是x,服务器节点node B的数据是y,当一个用户访问node B的数据,用户会收到y而不是错误或者超时,而在一段时间后,用户再次访问node A和B的数据时,用户会收到相同的结果(同时x或者y)。
评论