ZooKeeper 采用的哪种分布式一致性协议? 还有哪些分布式一 致性协议?

Johngo学长 ZooKeeper 59

常⻅的分布式一致性协议有

两阶段提交协议,三阶段提交协议,向量时钟,RWN协议,paxos协议,Raft协议。

ZooKeeper 采用的是paxos协议。

各协议细节

两阶段提交协议(2PC)
两阶段提交协议,简称2PC,是比较常用的解决分布式事务问题的方式,要么所有参与进程都提交事务,要么
都取消事务,即实现ACID中的原子性(A)的常用手段。

三阶段提交协议(3PC)

3PC就是在2PC基础上将2PC的提交阶段细分位两个阶段:预提交阶段和提交阶段

向量时钟

通过向量空间祖先继承的关系比较,使数据保持最终一致性,这就是向量时钟的基本定义。

NWR协议

NWR是一种在分布式存储系统中用于控制一致性级别的一种策略。在Amazon的Dynamo云存储系统中,就应用NWR来控制一致性。
让我们先来看看这三个字母的含义:

  • N:在分布式存储系统中,有多少份备份数据
  • W:代表一次成功的更新操作要求至少有w份数据写入成功
  • R:代表一次成功的读数据操作要求至少有R份数据成功读取

NWR值的不同组合会产生不同的一致性效果,当W+R>N的时候,整个系统对于客户端来讲能保证强一致性。当W+R 以常⻅的N=3、W=2、R=2为例: N=3,表示,任何一个对象都必须有三个副本(Replica),W=2表示,对数据的修改操作(Write)只需要在3个Replica中的2个上面完成就返回,R=2表示,从三个对象中要读取到2个数据对象,才能返回。在分布式系统中,数据的单点是不允许存在的。即线上正常存在的Replica数量是1的情况是非常危险的,因为一旦这个Replica再次错误,就可能发生数据的永久性错误。假如我们把N设置成为2,那么,只要有一个存储节点发生损坏,就会有单点的存在。所以N必须大于2。N约高,系统的维护和整体成本就越高。工业界通常把N设置为3。
当W是2、R是2的时候,W+R>N,这种情况对于客户端就是强一致性的。

paxos协议

需要了解的Paxos原理,历程及实践

Raft协议

Raft协议的动画

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部