写点什么

CAP 原理

用户头像
关注
发布于: 2020 年 11 月 01 日

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)。

用户头像

关注

还未添加个人签名 2020.05.01 加入

还未添加个人简介

评论

发布
暂无评论
CAP原理