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

这篇具有很好参考价值的文章主要介绍了面试官:说一说Zookeeper中Leader选举机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

哈喽!大家好,我是小奇,一位不靠谱的程序员
小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧
文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!

一、前言

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

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

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

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

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

二、面试

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

我:您是盲人?

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

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

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

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

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

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

我:那必须的。

三、Zookeeper中Leader选举机制

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

我:是这样的。。。

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

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

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

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

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

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

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

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

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

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

四、总结

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

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

如果觉得我的文章还不错的话就点个赞吧,另外可以微信搜索【小奇JAVA面试】阅读更多的好文章,获取我为大家准备的资料。文章来源地址https://www.toymoban.com/news/detail-401249.html

到了这里,关于面试官:说一说Zookeeper中Leader选举机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kafka 和 Zookeeper 的 Leader 和 Follower 区别(选举&数据同步)

    》Client与Server通过NIO通信 》全局串行化所有的写操作 》保证同一客户端的指令被FIFO执行 》保证消息通知的FIFO (2)kafka 不同,只有leader 负责读写,follower只负责备份,如果leader宕机的话,Kafaka动态维护了一个同步状态的副本的集合(a set of in-sync replicas),简称ISR,ISR中有f+1个节

    2024年04月10日
    浏览(78)
  • 一文通吃:从 ZooKeeper 一致性,Leader选举讲到 ZAB 协议与 PAXOS 算法(上)

    本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注\\\"慕课网\\\"或慕课网公众号! 作者:大能 | 慕课网讲师 本文将从ZooKeeper集群如何保证一致性,讲到zookeeper保证数据一致性的协议,然后展开讲Zookeeper集群Leader选举,包括集群三种节点的类型,ZAB协议中

    2024年02月07日
    浏览(57)
  • Zookeeper选举机制(通俗易懂)

    SID: 服务器ID。用来唯一标识一台ZooKeeper集群中的机器,每台机器不能重复,和myid一致。 ZXID: 事务ID。ZXID是一个事务ID,用来标识一次服务器状态的变更。在某一时刻,集群中的每台机器的ZXID值不一定完全一致,这和 ZooKeeper服务器对于客户端“更新请求”的处理逻辑有关

    2024年01月22日
    浏览(44)
  • Zookeeper的选举机制

    是一个分布式的系统,多个节点 并且节点中记录的数据是完全一致(一致性) , 当某个zk的节点宕机之后不会影响工作。因为Zookeeper的主节点不存在单点故障!Zookeeper的主节点是可以动态选举出来的! zookeeper的进程在不同的工作模式下,有不同的通信端口(比如选举时,通过端口

    2024年02月16日
    浏览(42)
  • Apache Zookeeper架构和选举机制

    ZooKeeper是一个开源的分布式协调服务,旨在解决分布式系统中的一致性、配置管理、领导者选举等问题。它由Apache软件基金会维护,是Hadoop生态系统的一部分,被广泛用于构建高可用、可靠和具有一致性的分布式应用程序和服务。 ZooKeeper提供了一个层次化的命名空间,类似于

    2024年02月11日
    浏览(44)
  • ZooKeeper 选举的过半机制防止脑裂

    结论: Zookeeper采用过半选举机制,防止了脑裂。 原因: 如果有5台节点,leader联系不上了,其他4个节点由于超过半数,所以又选出了一个leader,当失联的leader恢复网络时,发现集群中已经有了leader,会把自己降为flower,防止出现两个leader。 和NameNode不同的是,zookeeper是自己

    2024年02月14日
    浏览(40)
  • 说一说ajax的请求过程?

    AJAX(Asynchronous JavaScript and XML)是一种通过在后台与服务器进行异步通信的技术,用于实现页面的局部更新和动态加载数据。下面是 AJAX 请求的一般过程: 1:创建 XMLHttpRequest 对象:在 JavaScript 中,使用 new XMLHttpRequest() 创建一个新的 XMLHttpRequest 对象,用于发送和接收数据。

    2024年02月08日
    浏览(44)
  • React进阶 - 11( 说一说 PropTypes 和 DefaultProps )

    本章内容 截止到上一节的内容,我们使用了一个 TodoList 的案例,大概了解了 React 的一些入门知识。从本节内容开始,我们将进入 React 进阶知识的学习 在组件拆分时,我们知道每个组件都有自己的 props ,这个参数是从父组件那里接收的一些数据。 那么有个疑问,子组件在接

    2024年01月24日
    浏览(36)
  • Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)

    1.1 概述 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 1、Zookeeper工作机制 Zookeeper从设置模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责储存和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生

    2024年03月28日
    浏览(58)
  • React入门 - 07(说一说 JSX 中的语法细节)

    本章内容 上一节内容我们完成了一个简单的 TodoList 案例。到现在为止我们已经知道怎么在 JSX 中使用 “js 表达式”和”列表渲染“了,本节我们继续使用之前的工程项目来编写代码,补充在 React 使用 JSX 语法的一些细节。 JSX 中使用表达式: { JS 表达式 } 可使用的 js 表达式

    2024年01月17日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包