什么是数据一致性?
分布式系统中,数据会同时写到不同的节点中,同时,读数据时,也会从多个节点中读取。如果网络或服务出现故障,则可能会导致部分节点写入失败。
CAP定理:
Consistency: 一致性,所有副本的数据一致
Availability:可用性,需要在给定的时间内返回结果
PartitionToleranse:分区容忍性,可以对数据进行分区
CAP定理认为,一个存储系统无法同时满足一致性、可用性和分区容忍性。
Quornum系统NRW策略
N:数据所具有的副本数量
R:一次读操作需要参与的最小副本数
W:一次写操作需要参与的最小副本数
需要保证:
W > N/2: 某一时刻只能执行一个写操作
R+W > N: R>N-W,保证读操作一定能读到最新的数据
W越大,则写的开销越大,读开销越小
R越大,则写开销越小,读开销越大
对于需要最高写效率的场景,可以设置W=1,R=2,即每次只要写一个节点即成功,每次需要读所有节点的数据才成功,否则失败。每次更新一个节点,其他节点可以通过系统内部的同步逻辑来更新到新的数据
网友评论