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

Johngo学长 ZooKeeper 146

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

两阶段提交协议,三阶段提交协议,向量时钟,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协议的动画

回复

共1条回复 我来回复
  • 迷失技术de小猪
    迷失技术de小猪
    稍等伙伴们,思考简介中~
    评论

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

    两阶段提交协议,三阶段提交协议,向量时钟,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协议的动画

    1个月前 0条评论
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载