Zookeeper常见面试题(包含答案)
时间:2023-08-06 16:37:00
Zookeeper面试题及答案,每一道都是精心挑选的高频面试题,帮助大家找到满意的工作!
下载链接:所有的面试问题和答案PDF
1.ZooKeeper 是什么?
ZooKeeper 分布式应用程序协调服务是开放源代码的分布式服务 Google 的 Chubby 开源的实现是集群管理者,根据节点提交的反馈,监控集群中各节点的状态,进行下一步的合理操作。最后,为用户提供简单易用的接口和高效稳定的功能系统。
客户端的读取请求可以由集群中的任何机器处理。如果读取请求在节点上注册了监听器,则该监听器也由连接 zookeeper 处理机器。这些请求将同时发送给其他请求 zookeeper 机器并且达成一致后,请求才会返回成功。因此,随着 zookeeper 随着集群机的增加,阅读请求的吞吐量会增加,但写请求的吞吐量会减少。有序性是 zookeeper 一个非常重要的特点,所有的更新都是整体有序的,每个更新都有一个唯一的时间戳,这个时间戳被称为 zxid(Zookeeper Transaction Id)。与更新相比,读取请求只会有序,即读取请求的返回结果会带来这个 zookeeper 最新的 zxid。
2.Zookeeper 工作原理
Zookeeper 核心是原子广播,保证了每个机制 Server 同步。实现这一机制的协议称为协议 Zab 协 议。Zab 恢复模式(选主)和广播模式(同步)有两种模式。当服务启动或领导者崩溃时,Zab 进入恢复模式,当领导被选中时,大多数 Server 完成了和 leader 恢复模式在状态同步后结束。状态同步得到保证 leader 和 Server 具有相同的系统状态。
3.Zookeeper 负载均衡和 nginx 负载平衡差
zk 负载调节负载平衡,nginx 只能调整权重,其他需要控制的需要自己写插件;但是 nginx 的吞吐量比zk 要大得多,应该说根据业务选择哪种方式。
4.ZooKeeper 提供了什么?
1、文件系统
2、通知机制
5.Zookeeper 同步流程
选完 Leader 以后,zk 就进入状态同步过程。
1、Leader 等待 server 连接;
2、Follower 连接 leader,将最大的 zxid 发送给 leader;
3、Leader 根据 follower 的 zxid 确定同步点;
4.同步完成后通知 follower 已经成为 uptodate 状态;
5、Follower 收到 uptodate 新闻发布后,可以再次接受 client 服务的请求。
6.分布式通知和协调
对于系统调度:操作人员发送通知实际上是通过控制台改变节点的状态,然后 zk 将这些变化发送给注册了这个节点的 watcher 所有客户端。
实施报告:每个工作过程都在目录下创建一个临时节点。并携带工作进度数据,以监控目录子节点的变化,实时获得工作进度。
7.为什么机器里有? leader?
在分布式环境中,一些业务逻辑只需要集群中的一台机器来执行,其他机器可以共享结果,这可以大大降低重复计算,提高性能,因此需要执行 leader 选举。
8.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)
9.Zookeeper 文件系统
Zookeeper 提供多层次的节点命名空间(节点称为 znode)。与文件系统不同,这些节点可以设置相关的数据,而只有文件节点可以存储在文件系统中,而目录节点不能。Zookeeper 为了保证高吞吐量和低延迟,这种树状的目录结构在内存中得到了维护,这使得 Zookeeper 存储大量数据储数据上限不能用于存储大量数据 1M。
10.四种类型 znode
1、PERSISTENT-持久目录节点
客户端与 zookeeper 断开连接后,节点仍然存在
2、PERSISTENT_SEQUENTIAL-持久顺序编号目录节点
客户端与 zookeeper 断开连接后,节点仍然存在,但 Zookeeper 顺序编号节点名称
3、EPHEMERAL-临时目录节点
客户端与 zookeeper 断开连接后,节点被删除
4、EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点
客户端与 zookeeper 断开连接后,节点被删除,但 Zookeeper 顺序编号节点名称