美文网首页IT@程序员猿媛每天写1000字简友广场
ZooKeeper应用案例之选举机制原理分析

ZooKeeper应用案例之选举机制原理分析

作者: 皮皮杂谈 | 来源:发表于2019-04-07 15:35 被阅读10次

    本文从原理和实现角度介绍如何使用ZooKeeper解决常见的分布式问题,包括leader选举、分布式队列、负载均衡等。基于ZooKeeper实现leader选举的基本思想是,让各个参与竞选的实例同时在ZooKeeper上创建指定的znode,比如/current/leader,谁创建成功则谁竞选成功,并将自己的信息(host、port)写入该znode数据域,之后其他竞选者向该znode注册watcher,以便当前leader出现故障时,第一时间再次参与竞选,具体如图所示:

    基于ZooKeeper的leader选举

    基于ZooKeeper的leader选举流程如下:

    1)各实例启动后,尝试在ZooKeeper上创建ephemeral类型znode节点/current/leader,假设实例B创建成功,则将自己的信息写入该znode,并将自己的角色标注为leader,开始执行leader相关的初始化工作。

    2)除B之外的实例得知创建znode失败,则向/current/leader注册watcher,并将自己角色标注为follower,开始执行follower相关的初始化工作。

    3)系统正常运行,知道实例B因故障退出,此时znode节点/current/leader被ZooKeeper删除,其他follower收到节点被删除的事情,重新转入步骤1,开始新一轮leader选举。

    在Haddop生态系统中,HBase、YARN和HDFS等系统,采用了类似的机制结局leader选举问题。

    相关文章

      网友评论

        本文标题:ZooKeeper应用案例之选举机制原理分析

        本文链接:https://www.haomeiwen.com/subject/dresiqtx.html