谈谈自己关于CAP理论的理解

我这次理解的CAP,都是基于数据的基础上,如有错误,请大家指出。

C:一致性,分布式系统中,对一个节点的数据写入,在其他节点上读取到的必须是最新的。

A:可用性,某些节点出现故障或者性能不佳导致请求失效,其他节点依旧可以提供服务。

P:分区容忍性,简单的说,就是分布式系统中,节点间的通讯必然会出现通讯失败的情况,我们得允许,也不得不允许这个情况的出现,就是说我们得容忍节点间的通讯失败的情况。

如上图,红色竖线,我们表示由于网络分区,把整个DB网络分割成三个子网络,子网络之间无法通信。其中db1,2,3是一个数据库集群,接下来我们再说说基于上图的AP跟CP。

AP:选择可用性跟分区容忍性,弱化一致性,注意这里是弱化,而不是摈弃,因为当分区之间可以通信时,数据可以最终一致。假如,数据操作请求打到server1,此时数据保存到db1,但是由于网络分区,数据无法同步更新到db2,db3,如果有别的数据请求打到db2,就会出现数据不一致,但是整个系统还是可以正常响应,这就保证了可用性,弱化一致性。

常见的是redis的主从模式,当主节点宕机,从节点可以变成主节点,继续提供服务,等到之前的主节点恢复之后,数据进行同步,保证最终一致。

CP:选择一致性跟分区容忍性,同样是弱化可用性,并非一定是整个系统无法提供服务。比如,数据操作请求打到db1,某个时间点由于网络分区,数据无法同步到db2,db3,那么这次请求就会失败,无法正常响应结果,数据不会发生改变,但是下次,或者下下次请求可能网络恢复了,请求成功,正常响应。这就是可用性降低了,但是保证了数据的一致性。

常见的是zookeeper的集群模式,当master节点宕机之后,所有的节点要重新选举一个master出来,期间zookeeper无法提供服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值