简述 CAP 原理
C - Consistency 一致性
每次读取的数据都应该是最近写入的数据或返回一个错误,而不是过期数据,即数据是一致的。
A - Availability 可用性
系统需要一直都是可正常使用的,不会引起调用者的异常,但并不保证响应的数据是最新的。
P - Partition tolerance 分区耐受性
即使因为网络原因,部分服务器节点之间消息丢失或延迟了,系统依然应该是可操作的。
分布式系统无法同时满足CAP原理:
CA:不要求分区耐受性,优先保证一致性和可用性。 也就是不允许分区,变成了单机系统,不再是分布式系统了。
CP:不要求可用性,优先保证一致性和分区耐受性。在数据一致性要求比较高时,如一些数据库分布式事务属于这种模式。一旦网络故障或消息丢失,则会等恢复后才逐渐能访问。
AP:不要求一致性,优先保证可用性和分区容错性。节点之间失去联系,每个节点使用本地数据,很多NoSQL就属于这种类型。但放弃一致性指的是会逐渐的变得一致,而不是完全不保证了。
评论