CAP拾遗
Posted yeni
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAP拾遗相关的知识,希望对你有一定的参考价值。
概念
在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性、可用性、分区容错性三者中的两个,另外一个必须被牺牲
- Consistency
对某个指定的客户端来说,读操作保证能够返回最新的写操作结果 - Availaility
非故障的节点在合理的时间内返回合理的响应(不是错误和超时的响应) - Partition Tolerance
当出现网络分区后,系统能够继续“履行职责”
网络分区是指因为网络故障导致网络不连通,不同节点分布在不同的子网络,各个子网络内网正常
选择
在分布式系统中,网络分区不可避免,因此分区容错性P必须满足。
CP
为保证一致性,当发生分区现象后,N1节点的数据更新到y,但由于N1、N2之间的复制通道中断,N2无法同步最新的数据,当客户访问N2时,N2需要返回Error。
AP
为保证可用性,当发生分区现象后,N1和N2的数据并不同步,当客户C访问N2时,将旧数据返回了。注意:这里N2节点返回x,虽然不是一个“正确”的结果,但是一个“合理”的结果。
拾遗
CAP关注的粒度是数据,而不是整个系统
每个系统不可能只有一种数据类型,有的数据必须选择CP,有的数据必须选择AP,如果只从整个系统的角度去考虑,只会出现顾此失彼的问题正常运行情况下,不存在CP和AP的,可以同时满足CA
既要考虑分区发生时选择CP还是AP,也要考虑分区没有发生时如何保证CA牺牲并不等于什么都不做,需要为分区恢复后做准备
以上是关于CAP拾遗的主要内容,如果未能解决你的问题,请参考以下文章