CAP 中的P到底是个啥?

CAP中的P到底是个啥
分区 和 分区容错性 到底是不是一个概念?

《从PAXOS到ZOOKEEPER分布式一致性原理与实践》
这本书中是这么说的:
image.png
可以看到, 书上在解释P这一项时,提到的是 "分区现象出现后, 系统仍能保证C和A",这不成了 C+A+P 么? 这写的......实在不好理解

再往下看:
image.png
出现 分区, 个人觉得是问题
分区容错 这个概念不应该是出现分区后采取的措施么?
怎么还说要去避免, 好闹心
而且后面又说放弃 分区容错 就是放弃了系统的扩展性, 我觉着应该是放弃 分区 , 才是放弃了系统的扩展性吧

感觉绕来绕去, 一会儿 分区 和 分区容错 是一个意思
一会儿又觉着 分区是问题, 分区容错性 是分区问题的解决方案!!
好闹心

阅读 3.7k
2 个回答

分区和分区容错是两个东西。

分区是一种现象,当系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况。

而分区容错是一个系统的特性,指的是你这个系统对于分区这种现象有多高的容错能力。

P分区容错性(Partition Tolerance),这个书上说的是对的。

比如 Redis/Kafka/ZooKeeper,都支持集群架构,每个节点(或者说分区)中都有一份数据副本,某个节点(分区)挂掉之后不影响数据读取(脏读、丢数据等问题)。

第二段的截图是说,如果放弃了 P、还想避免分区出现问题时产生故障,可以就设成只有一个分区,这样肯定不会出现数据读取问题……

这里表述确实有点歧义,而且这么做其实相当于 A、P 都放弃了……

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进