网易首页 > 网易号 > 正文 申请入驻

ZooKeeper的面试题让我没逃过面试官的灵魂拷问,我太难了

0
分享至

前言:

ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper面试灵魂拷问

文末有福利哦

1.ZooKeeper 提供了什么?

  • 1、文件系统
  • 2、通知机制

2.Zookeeper 文件系统

Zookeeper 提供一个多层级的节点命名空间(节点称为 znode)。与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。Zookeeper 为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得 Zookeeper 不能用于存放大量的数据,每个节点的存放数据上限为1M

3.ZAB 协议?

ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持崩溃恢复的原子广播协议。

ZAB 协议包括两种基本的模式:崩溃恢复和消息广播。

当整个 zookeeper 集群刚刚启动或者 Leader 服务器宕机、重启或者网络故障导致不存在过半的服务器与 Leader 服务器保持正常通信时,所有进程(服务器)进入崩溃恢复模式,首先选举产生新的 Leader 服务器,然后集群中 Follower 服务器开始与新的 Leader 服务器进行数据同步,当集群中超过半数机器与该 Leader服务器完成数据同步之后,退出恢复模式进入消息广播模式,Leader 服务器开始接收客户端的事务请求生成事物提案来进行事务请求处理。

4.四种类型的数据节点 Znode

1、PERSISTENT-持久节点除非手动删除,否则节点一直存在于 Zookeeper 上

2、EPHEMERAL-临时节点临时节点的生命周期与客户端会话绑定,一旦客户端会话失效(客户端与zookeeper 连接断开不一定会话失效),那么这个客户端创建的所有临时节点都会被移除。

3、PERSISTENT_SEQUENTIAL-持久顺序节点基本特性同持久节点,只是增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。

4、EPHEMERAL_SEQUENTIAL-临时顺序节点基本特性同临时节点,增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。

5.客户端注册 Watcher 实现

1、调用 getData()/getChildren()/exist()三个 API,传入 Watcher 对象

2、标记请求 request,封装 Watcher 到 WatchRegistration

3、封装成 Packet 对象,发服务端发送 request

4、收到服务端响应后,将 Watcher 注册到 ZKWatcherManager 中进行管理

5、请求返回,完成注册

6.客户端回调 Watcher

客户端 SendThread 线程接收事件通知,交由 EventThread 线程回调 Watcher。

客户端的 Watcher 机制同样是一次性的,一旦被触发后,该 Watcher 就失效了。

7.Chroot 特性

3.2.0 版本后,添加了 Chroot 特性,该特性允许每个客户端为自己设置一个命名空间。如果一个客户端设置了 Chroot,那么该客户端对服务器的任何操作,都将会被限制在其自己的命名空间下。通过设置 Chroot,能够将一个客户端应用于 Zookeeper 服务端的一颗子树相对应,在那些多个应用公用一个 Zookeeper 进群的场景下,对实现不同应用间的相互隔离非常有帮助。

8.ookeeper 下 Server 工作状态

服务器具有四种状态,分别是 LOOKING、FOLLOWING、LEADING、OBSERVING。

1、LOOKING:寻找 Leader 状态。当服务器处于该状态时,它会认为当前集群中没有 Leader,因此需要进入 Leader 选举状态。

2、FOLLOWING:跟随者状态。表明当前服务器角色是 Follower。

3、LEADING:领导者状态。表明当前服务器角色是 Leader。

4、OBSERVING:观察者状态。表明当前服务器角色是 Observer。

9.zookeeper 是如何保证事务的顺序一致性的?

zookeeper 采用了全局递增的事务 Id 来标识,所有的 proposal(提议)都在被提出的时候加上了 zxid,zxid 实际上是一个 64 位的数字,高 32 位是 epoch(时期; 纪元; 世; 新时代)用来标识 leader 周期,如果有新的 leader 产生出来,epoch会自增,低 32 位用来递增计数。当新产生 proposal 的时候,会依据数据库的两阶段过程,首先会向其他的 server 发出事务执行请求,如果超过半数的机器都能执行并且能够成功,那么就会开始执行。

10.分布式集群中为什么会有 Master?

在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,其他的机器可以共享这个结果,这样可以大大减少重复计算,提高性能,于是就需要进行leader 选举。

11.zk 节点宕机如何处理?

Zookeeper 本身也是集群,推荐配置不少于 3 个服务器。Zookeeper 自身也要保证当一个节点宕机时,其他节点会继续提供服务。如果是一个 Follower 宕机,还有 2 台服务器提供访问,因为 Zookeeper 上的数据是有多个副本的,数据并不会丢失;如果是一个 Leader 宕机,Zookeeper 会选举出新的 Leader。ZK 集群的机制是只要超过半数的节点正常,集群就能正常提供服务。只有在 ZK节点挂得太多,只剩一半或不到一半节点能工作,集群才失效。所以

3 个节点的 cluster 可以挂掉 1 个节点(leader 可以得到 2 票>1.5)

2 个节点的 cluster 就不能挂掉任何 1 个节点了(leader 可以得到 1 票<=1)

12.zookeeper 负载均衡和 nginx 负载均衡区别

zk 的负载均衡是可以调控,nginx 只是能调权重,其他需要可控的都需要自己写

插件;但是 nginx 的吞吐量比 zk 大很多,应该说按业务选择用哪种方式。

13.Zookeeper 有哪几种几种部署模式?

部署模式:单机模式、伪集群模式、集群模式。

14.Zookeeper 对节点的 watch监听通知是永久的吗?为什么不是永久的?

不是。官方声明:一个 Watch 事件是一个一次性的触发器,当被设置了 Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了 Watch 的客户端,以便通知它们。为什么不是永久的,举个例子,如果服务端变动频繁,而监听的客户端很多情况下,每次变动都要通知到所有的客户端,给网络和服务器造成很大压力。一般是客户端执行 getData(“/节点 A”,true),如果节点 A 发生了变更或删除,客户端会得到它的 watch 事件,但是在之后节点 A 又发生了变更,而客户端又没有设置 watch 事件,就不再给客户端发送。在实际应用中,很多情况下,我们的客户端不需要知道服务端的每一次变动,我只要最新的数据即可。

15.chubby 是什么,和 zookeeper 比你怎么看?

chubby 是 google 的,完全实现 paxos 算法,不开源。zookeeper 是 chubby

的开源实现,使用 zab 协议,paxos 算法的变种。

16.Zookeeper 的典型应用场景

Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机制,可以非常方便的构建一系列分布式应用中年都会涉及的核心功能,如:

1、数据发布/订阅

2、负载均衡

3、命名服务

4、分布式协调/通知

5、集群管理

6、Master 选举

7、分布式锁

8、分布式队列

总结:

这些面试题是我收集整理的一份千道面试题文档里面,分享了一小部分给大家,要拿到自己想要的offer,首先要有准备的去面试,其次就是要有过硬的知识。这份PDF面试资料包含了各大Java核心知识的面试,都带详细的解答,分享给有需要的人

包含知识:

  • MyBatis 面试题(27题)
  • ZooKeeper 面试题(28题)
  • Dubbo 面试题(30题)
  • Elasticsearch 面试题(24题)
  • Memcached 面试题(23题)
  • Redis 面试题(40题)
  • MySQL 面试题(50题)
  • Java 并发编程(一),Java 并发编程(二)(共123题)
  • Java 面试题(一),Java 面试题(二)(共228题)
  • Spring 面试题(一),Spring 面试题(二)(共116题)
  • 微服务面试题(50题)
  • Linux 面试题(45题)
  • Spring Boot 面试题(22题)
  • Spring Cloud 面试题(8题)
  • RabbitMQ 面试题(12题)
  • kafka 面试题(18题)

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
究竟|未触发AEB?车门无法打开?山西问界M7事故争论到底在争什么

究竟|未触发AEB?车门无法打开?山西问界M7事故争论到底在争什么

澎湃新闻
2024-05-01 07:24:32
战神级表现,多特官方社交媒体:所有人都该向桑乔道歉

战神级表现,多特官方社交媒体:所有人都该向桑乔道歉

懂球帝
2024-05-02 06:02:14
5月1号晚间,消息面不得了,突发一个重要消息,要产生重大影响吗

5月1号晚间,消息面不得了,突发一个重要消息,要产生重大影响吗

股市皆大事
2024-05-01 14:50:48
男大学生诱骗多名女生“骑大马”,事后给250元!校方:基本属实

男大学生诱骗多名女生“骑大马”,事后给250元!校方:基本属实

鲁中晨报
2024-05-01 14:45:07
航天员返回后家属接机的温馨场面好感人!夏宜和汤洪波还有小插曲

航天员返回后家属接机的温馨场面好感人!夏宜和汤洪波还有小插曲

搞笑的阿票
2024-05-01 20:27:05
英国宣布进入战争状态,点名中俄伊,中国回应侮辱性很强

英国宣布进入战争状态,点名中俄伊,中国回应侮辱性很强

闫树军论评
2024-04-29 13:56:47
过安检的尴尬,网友:开箱的那一瞬间海关和我都自闭了,一摊血水

过安检的尴尬,网友:开箱的那一瞬间海关和我都自闭了,一摊血水

呼呼历史论
2024-05-01 23:28:10
辽粤G1的五离谱:胡明轩违体、张皓嘉6分钟5犯,徐杰20分-30

辽粤G1的五离谱:胡明轩违体、张皓嘉6分钟5犯,徐杰20分-30

开心体育站
2024-05-01 23:50:33
事实证明,坚持“丁克”25年的康辉,如今也走上了一条“不归路”

事实证明,坚持“丁克”25年的康辉,如今也走上了一条“不归路”

小兔子爱旅游
2024-04-24 18:02:57
董事长儿子拍短剧爆红!“完全没想到会上热搜”

董事长儿子拍短剧爆红!“完全没想到会上热搜”

21世纪经济报道
2024-05-01 09:35:52
常州副市长爆火出圈,“背景”越扒越心惊!

常州副市长爆火出圈,“背景”越扒越心惊!

李砍柴
2024-05-01 21:18:32
遥遥领先的车祸背后,是一个真敢吹,一个真敢信

遥遥领先的车祸背后,是一个真敢吹,一个真敢信

秋日么么茶
2024-04-30 08:07:00
累了!开车5小时还在上海...警方提醒:已设移动厕所;满了!售罄!五一假期是捅了人窝吧

累了!开车5小时还在上海...警方提醒:已设移动厕所;满了!售罄!五一假期是捅了人窝吧

上观新闻
2024-05-01 19:59:39
失业退役?35岁小托马斯在NBA赚了多少钱?退休金有多高?

失业退役?35岁小托马斯在NBA赚了多少钱?退休金有多高?

篮坛扒客
2024-05-02 07:33:30
冲上热搜!赵继伟被胡明轩踢伤眼睛,去医院检查,解说:无意的

冲上热搜!赵继伟被胡明轩踢伤眼睛,去医院检查,解说:无意的

体坛扒客
2024-05-01 22:48:55
你发现没?今年五一不一般,出现了5个怪现象,无论多忙,了解下

你发现没?今年五一不一般,出现了5个怪现象,无论多忙,了解下

阿龙美食记
2024-05-01 22:26:11
美官员强硬警告中国,赖清德就职之日,不允许进行任何的轻举妄动

美官员强硬警告中国,赖清德就职之日,不允许进行任何的轻举妄动

杂谈天下式
2024-05-02 00:18:43
大S要哭了!具俊晔和S妈的合照被曝光,网友笑翻了

大S要哭了!具俊晔和S妈的合照被曝光,网友笑翻了

快乐的青春
2024-05-01 11:48:58
例假裙,越脏越潮。真是佩服现在网友的脑洞

例假裙,越脏越潮。真是佩服现在网友的脑洞

室内设计师阿喇
2024-05-01 19:49:52
最新!余承东职务调整

最新!余承东职务调整

中国基金报
2024-05-01 10:24:04
2024-05-02 08:02:44
JAVA周某人
JAVA周某人
致敬大师,致敬未来的你。
137文章数 1513关注度
往期回顾 全部

科技要闻

余承东卸任华为终端CEO 新任命为董事长

头条要闻

女子耗时5年降价18次3折卖掉燕郊的房子:邻居会骂死我

头条要闻

女子耗时5年降价18次3折卖掉燕郊的房子:邻居会骂死我

体育要闻

詹眉湖人:洛杉矶大型烟花秀

娱乐要闻

黄子韬被曝求婚徐艺洋 大量亲密照曝光

财经要闻

王石自动放弃2023年千万退休金

汽车要闻

预售2.89-3.49万 奔腾小马正式开启预售

态度原创

艺术
亲子
本地
时尚
公开课

艺术要闻

造科幻之物于园林 “天工开悟——夏航雕塑展”于南池子美术馆呈现

亲子要闻

一定要逼孩子做这四件事

本地新闻

食味印象 | 潍坊:碳水脑袋的人间乐园

小长假必备!五一出游超适合的单品和搭配!

公开课

父亲年龄越大孩子越不聪明?

无障碍浏览 进入关怀版