程序员:面试官,来你要是能说出ZooKeeper原理,我转身就走(1)

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注Java)
img

正文

**程序员Y:**那我不管,我觉得我能在我所在的岗位做好我自己要做的事情就行了,熟知原理这些还浪费时间,工作中有用不到…

**面试官:**好了,既然你这样想,你先回家等通知吧…(朝着门口)下一位…

程序员Y:凭什么啊?我就面试一个7K的岗位,基础的我都答上来了,来,你来跟我讲讲Zookeeper的工作原理,要是能说出来,我转身就走…

**面试官:**行,小伙子啊,听我娓娓道来…

首先,通俗来讲,Zookeeper 的核心是原子广播,这个机制保证了各个 server 之间的同步。**实现这个机制的协议叫做 Zab 协议。**Zab 协议有两种模式,它们分别是恢复模式和广播模式。

当服务启动或者在领导者崩溃后,Zab 就进入了恢复模式,当领导者被选举出来,且大多数 server 的完成了和 leader 的状态同步以后,恢复模式就结束了。

状态同步保证了 leader 和 server 具有相同的系统状态。

一旦 leader 已经和多数的 follower 进行了状态同步后,他就可以开始广播消息了,即进入广播状态。这时候当一个 server 加入 zookeeper 服务中,它会在恢复模式下启动,发现 leader,并和 leader 进行状态同步。待到同步结束,它也参与消息广播。Zookeeper服务一直维持在 Broadcast 状态,直到 leader 崩溃了或者 leader 失去了大部分的followers 支持。

广播模式需要保证 proposal 被按顺序处理,因此 zk 采用了递增的事务 id 号(zxid)来保证。所有的提议(proposal)都在被提出的时候加上了 zxid。

实现中 zxid 是一个 64 为的数字,它高 32 位是 epoch 用来标识 leader 关系是否改变,每次一个 leader 被选出来,它都会有一个新的 epoch。低 32 位是个递增计数。

当 leader 崩溃或者 leader 失去大多数的 follower,这时候 zk 进入恢复模式,恢复模式需要重新选举出一个新的 leader,让所有的 server 都恢复到一个正确的状态。

如果往多了来讲,它内部原理具体分为以下十项:

  1. 请求、事务和标识符
  2. 群首选举
  3. Zab:状态更新的广播协议
  4. 观察者
  5. 服务器的构成
  6. 本地存储
  7. 服务器与会话
  8. 服务器与监视点
  9. 客户端
  10. 序列化

**面试官:**怎么样小伙子?知道了吗?

**程序员Y:**虽然听了半天我也没有听懂你说的什么,但是感觉很有道理的样子,告辞!

程序员Y头也没回的走出了面试房间…

**面试官赶忙擦了一把汗:**还好是我知道的zk,要是前面几个什么kafka、RabbitMQ,就出丑大了

**面试官(拿出手机,拨出一个电话):**喂,是人事吗?你们怎么回事?我这里招的是中高级程序员,给出的薪资是24K,你们是不是把隔壁部门的初级岗位应聘者丢我这里来了?

看完上面的小故事,小on就来给大家分享Zookeeper的相关知识了。

注意:以下内容摘自一份283页的pdf,《Java核心技术点》↓

还有一些大厂面试真题↓

需要的程序员朋友,私信霸哥【面试】免费领取!

Zookeeper 概念

最后

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值