Java面试:ZooKeeper面试题汇总及答案

本文汇总了ZooKeeper的重要面试题,包括其本质、文件系统、通知机制、应用场景和集群管理等核心概念。ZooKeeper提供了一个分布式协调服务,支持文件系统、命名服务和配置管理等功能,利用其通知机制实现实时变更通知。在集群管理中,Zookeeper通过选举算法确保高可用性,并通过watcher事件处理节点的变更。此外,还讨论了Zookeeper与Eureka作为注册中心的区别,以及其负载均衡和nginx的不同。Zookeeper的watch机制保证了一次性触发和数据的最终一致性,适用于分布式锁和通知协调等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【面试题】- ZooKeeper是什么?
ZooKeeper是一个分布式 的,开放源码的分布式 应用程序协调服务 ,是Google的Chubby一个开源的实现, 它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易 用的接口和性能高效、功能稳定的系统提供给用户。 客户端的 读请求 可以被集群中的 任意一台机器处理 ,如果读请求在节点上注册了监听器,这个监听器也是由所 连接的zookeeper机器来处理。对于 写请求 ,这些请求会同 时发给其他 zookeeper 机器并且达成一致后,请 求才会返回成功 。因此,随着 zookeeper 的集群机器增多,读请求的吞吐会提高但是写请求的吞吐会下降 。 有序性是zookeeper中非常重要的一个特性,所有的 更新都是全局有序的 ,每个更新都有一个 唯一的时间戳 , 这个时间戳称为 zxid ( Zookeeper Transaction Id ) 。而 读请求只会相对于更新有序 ,也就是读请求的返回 结果中会带有这个 zookeeper 最新的 zxid 。

【面试题】- ZooKeeper提供了什么(本质)?
1、文件系统
2、通知机制

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

【面试题】- 四种类型的znode
1、PERSISTENT- 持久化目录节点 客户端与zookeeper断开连接后,该节点依旧存在

2、PERSISTENT_SEQUENTIAL- 持久化顺序编号目录节点

客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号

3、EPHEMERAL- 临时目录节点

客户端与zookeeper断开连接后,该节点被删除

4、EPHEMERAL_SEQUENTIAL- 临时顺序编号目录节点客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。

【面试题】- Zookeeper通知机制
client端会对某个znode建立一个watcher 事件 ,当该znode发生变化时,这些client会收到zk的通知, 然后client可以根据znode变化来做出业务上的改变等。

【面试题】- Zookeeper的应用场景?
1、命名服务 2、配置管理 3、集群管理 4、分布式锁 5、队列管理

【面试题】- zk的命名服务(文件系统)
命名服务是指通过指定的名字来获取资源或者服务的地址,利用zk创建一个全局的路径,即是唯一的路径,这个路径就可以作为一个名字,指向集群中的集群,提供的服务的地址,或者一个远程的对象等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值