欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

分布式系统的CAP定理

程序员文章站 2022-06-23 22:30:54
CAP定理: 在一个分布式系统中,Consistency(数据一致性)、 Availability(服务可用性)、Partition tolerance(分区容错性),三者不可兼得。 一致性(Consistency) 在分布式系统中的所有数据备份(副本),在同一时刻数据的值是否一致。(等同于所有节点 ......

 

cap定理:

在一个分布式系统中,consistency(数据一致性)、 availability(服务可用性)、partition tolerance(分区容错性),三者不可兼得。

 

一致性(consistency)  

在分布式系统中的所有数据备份(副本),在同一时刻数据的值是否一致。(等同于所有节点访问同一份最新的数据副本)

在分布式系统中,更新操作执行成功后所有的用户都应该读到最新的值,等同于所有节点访问同一份最新的数据副本,这样的系统被认为具有强一致性。优点: 数据一致,数据不会出错;缺点: 效率低。

不满足一致性指的是不满足强一致性,但一般都要使用一些方式(加锁),使数据具有最终一致性。

 

 

可用性(availablity)

在集群中一部分节点故障后,集群整体是否还能响应客户端的请求(是否还可用)。

每一个操作总能在一定的时间内完成,一定时间是指完成时间可以容忍、接受,完成是指结束(不管成功、失败)。

 

 

分区容错性(partition-torlerance)

在网络分区中,每个时刻,每个集群都要有节点能正常对外提供服务,总要有一条完整的(网络)通路。无论什么情况,服务器都要能正常被访问。

系统如果不能在时限内达成数据一致性,默认系统无故障,网络分区发生了情况,必须就当前操作在c和a之间做出选择。

 

 

定律:任何分布式系统只能同时满足二点,没法三者兼顾