CAP

用户头像
东哥
关注
发布于: 2020 年 07 月 15 日
CAP

1.请简述CAP原理

1.1   什么是CAP原理

CAP原理指的是一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项:

C:Consistency:

即一致性,访问所有的节点得到的数据应该是一样的。注意,这里的一致性指的是强一致性,也就是数据更新完,访问任何节点看到的数据完全一致,要和弱一致性,最终一致性区分开来。

 

A:Availability:

即可用性,所有的节点都保持高可用性。注意,这里的高可用还包括不能出现延迟,比如如果节点B由于等待数据同步而阻塞请求,那么节点B就不满足高可用性。

也就是说,任何没有发生故障的服务必须在有限的时间内返回合理的结果集。

 

P:Partiton tolerance:

即分区容忍性,这里的分区是指网络意义上的分区。由于网络是不可靠的,所有节点之间很可能出现无法通讯的情况,在节点不能通信时,要保证系统可以继续正常服务。

1.2:典型案例

AP:redis,会有丢失数据的问题出现

CP:zk,所以zk的节点超过1000会有大问题,因为要保证数据一致,其可用性大打折扣

AC:没有分区问题的只能是个单机,但是单机不能保证高可用。。。 

1.3 思考



比如,redis做分布式锁,分布式锁的本质是保障数据一致性。而redis是ap模型,所以在强调数据一致性的场景,redis不适合;

再比如,我么一般用zk做注册中心,其实注册中心更倾向于ap而不是cp,而且不能因为自身问题导致服务自身的不可联通,所以zk不是很适合



用户头像

东哥

关注

还未添加个人签名 2018.03.25 加入

还未添加个人简介

评论

发布
暂无评论
CAP