zookeeper内部机制与注册监听机制

本文探讨了Zookeeper在集群设置中为何建议使用奇数个节点,详细解释了Zookeeper的选举过程,并通过示例介绍了节点注册和监听机制。此外,还列举了Zookeeper在HA、监控和YARN等场景的应用。
摘要由CSDN通过智能技术生成

zookeeper应用:

You can use it off-the-shelf to implement consensus, group management, leader election, and presence protocols. And you can build on it for your own, specific needs.

集群节点为什么建议奇数个?

只有超过一半的节点正常,集群才正常,才可以对外服务。

所以,1个节点可以;2个节点,死一个集群就不能用了,所以和一个是一样的;

三个节点,四个节点死一个可以用,死两个不能用,所以和三个是一样的。

所以,需要配置奇数个节点。

zookeeper如何选举?投票结果超过一半立马成为leader,其余的自动成为follower

假如有三个节点

  • 启动集群时:

1、集群启动时,发送投票,自己选举自己为leader,只有一台可选举,但是没有超过半数,进入looking状态;

2、第二台启动,发送投票,自己选举自己为leader,与第一台交换信息,会进行比较epoch、zxid(新启动这两个值都相等),然后比较myid,选举出myid大的那个,此时一定会有一个节点票数超过2,会产生leader

3、第三个一定是follower

  • 集群运行时,发现leader死了进行重新选举,每个节点都发起一轮投票,此时每个节点投票的方式就是先比较epoch、再比较zxid、最后比较myid

znode注册事件模式:

/***
 *  CreateMode value determines how the znode is created on ZooKeeper.
 */
public enum CreateMode {
    
    /**
     * The znode will not be automatically deleted upon client's disconnect.
     */
    PERSISTENT (0, false, false),
    /**
    * The znode will not be automatically deleted upon client's disconnect,
    * and its name will be appended with a monotonically increasing number.
    */
    PERSISTENT_SEQUENTIAL (2, false, true),
    /**
     * The znode will be deleted upon the client's disconnect.
     */
    EPHEMERAL (1, tru
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值