CAP 原理
一致性consistency:每次读取的数据都应该是最近写入的数据或者返回一个错误,而不是过期数据
可用性availability:每次请求都应该得到一个响应,系统需要一直都是正常使用
分区耐受性partition tolerance:因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可操作的
三者无法同时满足,但对于一个分布式系统,网络失效是一定会发生的,即分区受耐性必须要保证,
当网络分区失效时,要么取消操作,数据一致但系统不可用,继续写入,数据一致性就得不到保证
那么必须在剩下两种二选一,例如,eureka是基于ap(),zookeeper基于cp(重新选举的时候整个注册服务瘫痪不能保证可用性)
评论