面试官:说一说Zookeeper中Leader选举机制

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 本文为大家介绍Zookeeper中Leader选举机制。

一、前言



今天又是一个阳光明媚的一天,我又怀着沉重的心情踏上了面试的道路,有时我就在怀疑自己,自己是不是不适合程序员这个职业,难道真的要去做段子手。。。


不知不觉的走到了要面试公司的楼下,兴奋又期待的拨通了hr的电话,多希望她会说一句:上来吧,给你留门了。。。


遗憾的是并没有给我留门,不过没关系,我已经记住门牌号了,我可以半夜爬你家窗户。。。


进来后hr小姐姐让我在会议室里稍作等待,等了一会后进来一个身材魁梧、一米八五的壮汉,我心想这应该就是面试官吧,这次看着不好惹啊,我这次还是收敛点吧,但是我看他戴着一个黑色墨镜,我心想难道他是。。。


二、面试



面试官:小奇是吧,先做一个自我介绍吧


我:您是盲人?


面试官:不是啊,怎么这么问呢?


我:不是盲人你手里拿着我的简历怎么还让我介绍呢?


面试官:不是,这是流程懂不懂,在你介绍的过程中我可以好好看看你的简历


我:(我站起来夺过了面试官手中的简历扔到了地上)不用看我的简历了,你就记住两个字,精通就完了。


面试官:(面试官瑟瑟发抖)什么都精通?


我:那必须的。


三、Zookeeper中Leader选举机制



面试官:那你说一说zookeeper中leader选举机制吧


我:给我上三个小姐姐。。。


面试官:大哥,你是来面试的,这里不是足浴店。。。


我:我知道,我让他们三个模仿zookeeper节点,来带你生动形象的了解一下zookeeper是怎么选举的。


面试官:那好吧,这确实是一个不错的理由,以后我就可以随便。。。


此时进来了三个小姐姐,大姐美丽端庄,暂且叫她大端庄吧,二姐闭月羞花,暂且叫她二羞花吧,三姐国色天香,暂且叫她三天香吧。


我:我现在给你们每个人一个选票,上面可以写两个数,第一个数代表你们自己,每个人的都不一样,你们第一个数就按照1、2、3来吧。第二个数你们可以随便填写。


这时大端庄写的是(1,0),二羞花写的是(2,0),三天香写的是(3,0)


这个时候我们假如先启动两个节点,一个是大姐,一个是二姐。


这个时候大姐把手里的票发送一个副本给二姐,二姐把手里的票也发送一个副本给大姐。


10.png


这个时候大姐用二姐发给自己的票和自己手里的票比较,先比较后一位,如果对方比自己的大,那么就丢弃自己的票,而保留对方的票,如果对方比自己的小而丢弃对方的票而保留自己的,如果相等就比较第一位数,如果两位数都相等则两个票都保留。


大姐是(1,0),二姐是(2,0),最后一位都相等,则比较第一位,第一位二姐是2大于大姐的1,所以大姐丢弃自己原来的票据,而保存二姐发过来的票据。


11.png


由于二姐的票比大姐的大,所以二姐自己的票不用丢弃,丢弃大姐给的副本就好。

这个时候双方再次相互发送票据。


12.png


这个时候由于双方票据大小都一样,则不仅保存自己的票据还要保存对方发送的副本票据,此时两个人的票据情况如下。


13.png


这个时候由于每个人所持有的票数大于总节点的一半(这里只有大姐、二姐两个节点,所以总节点是2)这里就确定了leader应该是(2,0)对应的节点,也就是二姐是leader。


面试官:那小三呢,三姐天香还没有启动呢


我:别急,现在三姐天香启动后发现已经选举出leader了,所以三姐天香就直接将自己变为follower角色。


面试官:嗯,我明白你的意思,那你能最后总结一下比较那里是怎么比较的吗,我有点晕


我:好的,比较那里只有三种情况,一种是自己大于对方,第二种是对方大于自己,第三种是两人相等。


自己大于对方:将对方发过来的票扔掉,保存自己的票。

对方大于自己:将自己的票扔掉,保存对方的票。

两人相等:将自己和对方发过来的票都保存。


面试官:嗯,那我要是想当leader就直接把票改大一点不就行了,票里的数据怎么来的呢?


我:票里两个数一个是myid,一个是zxid,myid是节点的唯一标识,在启动节点之前需要配置好,而zxid在数据修改后会增加,zxid越大证明这个节点里的数据越新。


14.png


面试官:哦,那意思就是节点数据越新的就最有资格当leader呗


我:是这样的。。。


面试官:小伙子真厉害啊,我这边没有什么要问的了,你还有什么问题要问我的吗


我:额。。。那三个小姐姐的微信你有吗?


面试官:咳,只要你来,别说三个了,就是三百个也不在话下


我:那现在去办理入职吧。。。


面试官:别急呀,你得先去体检,证明你可以的哦。。。


我:那我肯定没有问题呀。


面试官:你还有其他同学吗,给我推荐几个


我:有,跟我一起学习小奇趣学编程系列的有不少人,我都给你介绍过来吧。


面试官:好啊,我这里正缺人呢。。。


我:那我先去体检了啊,记着我的三百个。。。


四、总结



这里关于zookeeper还没有整理完毕,文章后面持续更新,建议收藏。


文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。



相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
6月前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
573 2
|
6月前
|
消息中间件 负载均衡 Kafka
【大厂面试演练】听说你很懂ZooKeeper?那我考考你
面试官:看你简历写了精通ZooKeeper,那我就随便考考你吧。首先我上面说的共享锁实现方式如果在集群不大的情况下是可行的,而且他实现简单实用。而如果在集群规模大的场景下,可以这样改进...
207 3
【大厂面试演练】听说你很懂ZooKeeper?那我考考你
|
1月前
|
分布式计算 负载均衡 算法
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
28 1
|
1月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
39 1
|
1月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
42 1
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
47 1
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
47 0
|
2月前
|
存储 负载均衡 算法
分布式-Zookeeper-Master选举
分布式-Zookeeper-Master选举
|
4月前
|
存储 数据库
zookeeper 集群环境搭建及集群选举及数据同步机制
zookeeper 集群环境搭建及集群选举及数据同步机制
72 2
|
5月前
|
缓存 NoSQL 数据库
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
105 0