浅谈CAP理论

什么是CAP
  • CAP 是分布式系统的三要素 ,分别是

    • 一致性 Consistency
    • 可用性 Availability
    • 分区容错性 Partition tolerance

A
B
C
  • 一个简单的分布式系统架构如上图,serve端 一共由B,C组成,client端为 A
  • 下面我们来简单谈一下什么是CAP?
  • 一致性 Consistency
    • 可以理解为如果我写了一个值就一定可以读到这个值,不管是从分布式的那台机子上读
    • 举例我 A 写入 B id=1 name=tony ,那 A 读 C 就可以读出 id=1 的 name=tony
A B C 写入 id=1 name=tony 同步数据 同步成功 已写入成功 读取 id=1 name=? name=tony A B C

  • 可用性 Availability
    • 可以理解成分布式服务的主机,收到命令就一定要给回复
A B C ping pong ping pong A B C
  • 分区容错性 Partition tolerance
    • 分布式的子系统可能在不同的网络中,我们必须考虑,分布式系统间网络不通的情况,比如B和C之间网络连接断开
B C ping B C

为什么分布式 CAP 理论,只能满足其中两个
  • 因为既然是分布式,那么 P 分区容错性就一定要保障
    • 保障了分区容错性就说明我们B,C间的网络可能是不通的
    • 那么这时就可能出现两种情况了

情况一、A向B更新数据,B不能同步给C,于是A求情C的时候C直接返回未同步的结果给A,很明显这没有符合CAP里的C一致性

A B C 更新 id=1 name=tony 为 id=1 name= jack 网络中断,同步失败 更新成功 读取 id=1 name=? name=tony A B C

情况二、A向B更新数据,B不能同步给C,于是A求情C的时候,C一直等待B的同步,直到B同步才返回结果给A,但由于B、C间网络中断,所以C一直阻塞,不能返回结果给A,很明显这没有符合CAP里的A可用性

A B C 更新 id=1 name=tony 为 id=1 name= jack 网络中断,同步失败 更新成功 读取 id=1 name=? 未同步B的信息, 不能返回结果,只 有同步了才能返回 A B C

结论
  • 在分布式系统中 CAP 不能兼得,通常我们只能保证 CP 和 AP(CA模型不是分布式而是传统数据库模型)
  • 在业务的技术选型中,要着重考虑我们的服务是优先需要保证一致性还是可用性
  • 只有明白了我们服务自身的特点,我们才能在技术选型的时候不选错技术方案
期末大作业基于python的足球运动员数据分析源码+数据集(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于python的足球运动员数据分析源码+数据集(高分项目)期末大作业基于pyth
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值