CAP分别指向Consistency(一致性)Availability(可用性)Partition Tolerance(分区容错性)
Consistency:一致性,一致性即数据变动在系统内部各节点应该是保持一致的,根据一致性的强弱程度不同 它分为一下三种情况
强一致性:任何时刻 任何用户都能读取到最近一次更新信息的数据;
单调一次性:任何时刻 任何用户读取到的信息都不会比旧的信息要低 所以说这种一致性是单调递增的
会话一致性:它是在单调一致性的基础上 只保证单个用户单个会话的内的单调一致性,不能保证在多个用户或单个用户的不同会话的单调一致性
最终一致性:用户只能读到某次更新过后的数据,但是系统最后会保证数据的一致性;
弱一致性:用户无法在确定时间内读到最新更新后的值
Availability:可用性, 是指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求"都能够在有限的时间内" "返回结果"
"都能够在有限的时间内":就是用户在发送请求 系统必须要在一定的时间内返回出一个结果给到用户 如果超过了时间范围 那么这个系统就是被认为就是不可用的。
"返回结果":无论如何 系统返回的结果都要让用户感觉到能够接受 而不是返回的结果让用户摸不着头脑
Partition Tolerance:分区容错性,是指在遇到网络分区故障的时候 系统依然能够正常运行程序 系统把数据分布到各个节点 然后一个节点发生错误 另一个节点可以正常运行 保证系统的可用性 如果保持一致性的话 会给用户造成不好的体验感 这些是要看不同环境下 该怎么运用CAP
这里需要注意的是:三者只能存在两者 并不能三者并存 p是肯定需要的 那这时候就要看你的需要了 如果你要保证系统的可用性 那么就是ap 如果要保证系统的一致性 那么就是cp