分布式系统中的CAP理论:

C : Consistency 一致性,A : Availability 可用性, P : Partition tolerance 分区容错

C A P ,在分布式系统中,不可能同时满足,只能满足其中的两个

1. P-> 分区容错:一个分布式系统,是由多个子网络组成的,分区容错就是指:各个子网络之前的通信可以失败,这个我们无法保证100%避免。所以,CAP中的P,是一定存在的。剩下的C和A就只能满足一个了。

2. A -> 可用性:可用性是指:当前系统只要收到客户端的请求,就必须要给出回应。就下图来讲,无论是客户端请求A服务,还是B服务,都会给到客户端一个响应。要实现高可用,就需要通过集群来保证。

3. C -> 一致性:一致性是指:客户端写入的数据,在下一次读取时,是否一定能读取到。

                        一致性又分为:(1)强一致性,(2)弱一致性,(3)最终一致性

                       强一致性:对数据的一致性要求极其严格,客户端写入数据后,无论访问集群中的哪一个节点,都需要获取到最新的数据。也就势必会已损失性能为代价。

                       弱一致性:对数据实时的准确性不是特别的高,可能系统在一段时间内,才能将数据同步,实现一致性。最终一致性是一致性的特例。

4. 为什么一致性和可用性,不能同时满足:

如上图:客户端向DB1写入了a=1的数据,如果系统要保证严格的强一致性,那么一定要保证将当前数据同步到DB2以后,DB2才能对外提供服务,那么这段时间,对于DB2来说,是不可用的。

如果系统为若一致性,那么可能在数据还没有同步到DB2时,DB2就已经对外提供访问,它提供的数据就是不准确的,也就做不到一致性。

导致两者不能同时成立的原因:有可能是分区容错导致的,也有可能是自身的原因。比如当前服务器配置较低,同步数据较慢

  

CAP可以产生三种组合,为什么P是一定要得呢?为什么不需要保证CA呢?

因为要能完全避免分区容错性,那么就要避免服务之间有网络的通信,既然是分布式架构系统,就一定会有网络通信,所以如果想要保证CA,系统就会演变成单体架构

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值