分布式应用知识CAP理论
– CAP定理
指的是一个分布式系统中的,Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性),三者不可同时获得
一致性:
在分布式系统中的所有数据备份,在同一时刻是否同样的值(同一时间的数据完全一致,越多节点,数据同步越耗时)
-
强一致性:任何时刻,任何用户都能读取到最近一次成功更新的数据。
-
单调一致性(monotonic consistency):任何时刻,任何用户一旦读到某个数据在某次更新后的值,那么就不会再读到比这个值更旧的值。
-
会话一致性(session consistency):任何用户再某次会话中,一旦读到某个数据再某次更新后的值,那么再本次会话中就不会再读到比这个值更旧的值。
只保证单个用户单个会话内的单调性,在不同用户或者同一用户不同会话间则没有保证 -
最终一致性(eventual consistency):用户只能读到某次更新后的值,但系统保证数据将最终达到完全一致的状态,只是所需时间不能保证
-
弱一致性(weak consistency):用户无法在确定时间内读到最新更新的值
可用性:
负载过大后,集群整体是否还能响应客户端的读写请求
分区容错性:
就是高可用性,一个节点崩了,并不影响其他的节点
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须要实现的,只能在一致性和可以用性之间权衡