简述CAP理论

  • 数据一致性(consistency):如果系统对一个写操作返回成功,那么之后的读请求都必须读到这个新数据;如果返回失败,那么所有读操作都不能读到这个数据,对调用者而言数据具有强一致性(strong consistency)
  • 服务可用性(availability):所有读写请求在一定时间内得到响应,可终止、不会一直等待
  • 分区容错性(partition-tolerance):在网络分区的情况下,被分隔的节点仍能正常对外服务
图片[1]-简述CAP理论-编程社

如果选择了CA而放弃了P,那么当发生分区现象时,为了保证C,系统需要禁止写入,当有写入请求时,系统返回error(例如,当前系统不允许写入),这又和A冲突了,因为A要求返回no error和no timeout。

因此,分布式系统理论上不可能选择CA架构,只能选择CP或者AP架构

反证:

如果CAP三者可同时满足,由于允许P的存在,则一定存在节点之间的丢包,如此则不能保证C

因为允许分区容错,写操作可能在节点1上成功,在节点2上失败,这时候对于Client 1 (读取节点1)和Client 2(读取节点2),就会读取到不一致的值,出现不一致的情况。

如果要保持一致性,写操作必须同时失败,也就是降低系统的可用性。

© 版权声明
THE END
喜欢就支持一下吧
点赞112 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称

    暂无评论内容