乐趣区

关于2022招聘季:面试官说一说Zookeeper中Leader选举机制

哈喽!大家好,我是小奇,一位不靠谱的程序员
小奇打算以轻松风趣的对话形式来分享一些技术,如果你感觉通过小奇的文章学到了货色,那就给小奇一个赞吧
文章继续更新

一、前言

明天又是一个阳光明媚的一天,我又怀着惨重的情绪踏上了面试的路线,有时我就在狐疑本人,本人是不是不适宜程序员这个职业,难道真的要去做段子手。。。

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

遗憾的是并没有给我留门,不过没关系,我曾经记住门牌号了,我能够中午爬你家窗户。。。

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

二、面试

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

我:您是盲人?

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

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

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

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

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

我:那必须的。

三、Zookeeper 中 Leader 选举机制

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

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

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

我:我晓得,我让他们三个模拟 zookeeper 节点,来带你活泼形象的理解一下 zookeeper 是怎么选举的。

面试官:那好吧,这的确是一个不错的理由,当前我就能够轻易。。。

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

我:我当初给你们每个人一个选票,下面能够写两个数,第一个数代表你们本人,每个人的都不一样,你们第一个数就依照 1、2、3 来吧。第二个数你们能够轻易填写。

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

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

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

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

大姐是(1,0),二姐是(2,0),最初一位都相等,则比拟第一位,第一位二姐是 2 大于大姐的 1,所以大姐抛弃本人原来的票据,而保留二姐发过来的票据。

因为二姐的票比大姐的大,所以二姐本人的票不必抛弃,抛弃大姐给的正本就好。

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

这个时候因为单方票据大小都一样,则不仅保留本人的票据还要保留对方发送的正本票据,此时两个人的票据状况如下。

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

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

我:别急,当初三姐天香启动后发现曾经选举出 leader 了,所以三姐天香就间接将本人变为 follower 角色。

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

我:好的,比拟那里只有三种状况,一种是本人大于对方,第二种是对方大于本人,第三种是两人相等。

本人大于对方:将对方发过来的票扔掉,保留本人的票。
对方大于本人:将本人的票扔掉,保留对方的票。
两人相等:将本人和对方发过来的票都保留。

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

我:票里两个数一个是 myid,一个是 zxid,myid 是节点的惟一标识,在启动节点之前须要配置好,而 zxid 在数据批改后会减少,zxid 越大证实这个节点里的数据越新。

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

我:是这样的。。。

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

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

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

我:那当初去办理入职吧。。。

面试官:别急呀,你得先去体检,证实你能够的哦。。。

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

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

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

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

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

四、总结

这里对于 zookeeper 还没有整顿结束,文章前面继续更新,倡议珍藏。

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

如果感觉我的文章还不错的话就点个赞吧

本文参加了 SegmentFault 思否征文「如何“反杀”面试官?」,欢送正在浏览的你也退出。

退出移动版