面试题--Zookeeper

1. Zookeeper 是什么(了解)

Zookeeper 是一个 分布式协调服务 的开源框架, 主要用来解决分布式集群中应用系统
的一致性问题, 例如怎样避免同时操作同一数据造成脏读的问题.
ZooKeeper 本质上是 一个分布式的小文件存储系统 . 提供基于类似于文件系统的目录
树方式的数据存储, 并且可以对树中的节点进行有效管理. 从而用来维护和监控你存储的数
据的状态变化. 通过监控这些数据状态的变化,从而可以达到基于数据的集群管理.
在大数据生态系统里,很多组件的命名都是某种动物,比如 hadoop 就是大象, hive
就是蜜蜂, 而 Zookeeper 就是动物管理员.

2. Zookeeper 的数据模型(必会)

 ZK 本质上是一个分布式的小文件存储系统.
 ZK 表现为一个分层的文件系统目录树结构, 既能存储数据, 而且还能像目录一样有子
节点. 每个节点可以存最多 1M 左右的数据.
 每个节点称做一个 Znode, 每个 Znode 都可以通过其路径唯一标识.
 而且客户端还能给节点添加 watch, 也就是监听器, 可以监听节点的变化, 这个功能常
在实际开发中作为监听服务器集群机器上下线操作

3. Zookeeper 的 watch 监听机制(高薪常问)

 在 ZooKeeper 中还支持一种 watch(监听)机制, 它允许对 ZooKeeper 注册监听, 当监
听的对象发生指定的事件的时候, ZooKeeper 就会返回一个通知.
 Watcher 分为以下三个过程:客户端向 ZK 服务端注册 Watcher、服务端事件发生触
发 Watcher、客户端回调 Watcher 得到触发事件情况.
触发事件种类很多,如:节点创建,节点删除,节点改变,子节点改变等。
 Watcher 是一次性的. 一旦被触发将会失效. 如果需要反复进行监听就需要反复进行
注册.

4. Zookeeper 的应用场景(高薪常问)

ZK 提供的服务包括: 统一命名服务, 统一配置管理, 统一集群管理, 集群选主, 服务动
态上下线, 分布式锁等.

4.1 统一命名服务

统一命名服务使用的是 ZK 的 node 节点全局唯一的这个特点.
在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。例如:IP 不容易记
住,而域名容易记住。创建一个节点后, 节点的路径就是全局唯一的, 可以作为全局名称使
用.

4.2 统一配置管理

统一配置管理, 使用的是 Zookeeper 的 watch 机制
 需求: 分布式环境下, 要求所有节点的配置信息是一致的, 比如 Kafka 集群. 对配
置文件修改后, 希望能够快速同步到各个节点上.
 方案: 可以把所有的配置都放在一个配置中心, 然后各个服务分别去监听配置中心,
一旦发现里面的内容发生变化, 立即获取变化的内容, 然后更新本地配置即可.
 实现: 配置管理可交由 Zookeeper 实现
 可将配置信息写入 Zookeeper 上的一个 Znode.
 各个客户端服务器监听这个 Znode.
 一旦 Znode 中的数据被修改, Zookeeper 将通知各个客户端服务器.

4.3 统一集群管理

统一集群管理使用的是 Zookeeper 的 watch 机制
 需求: 分布式环境中, 实时掌握每个节点的状态是必要的, 可以根据节点实时状态
做出一些调整.
 方案: Zookeeper 可以实现实时监控节点状态变化
 可将节点信息写入 Zookeeper 上的一个 Znode.
 监听这个 Znode 可获取它的实时状态变化

相关推荐
倔强的石头_5 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB7 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
阿里云云原生8 小时前
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
云原生·agent
Flittly8 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
咖啡八杯1 天前
GoF设计模式——中介者模式
java·后端·spring·设计模式
阿里云云原生1 天前
Higress v2.2.3 发布:正式入驻 CNCF Sandbox,AI Gateway 与 Ingress 迁移能力双向加固
云原生
jiayou641 天前
KingbaseES 表级与列级加密完全指南
数据库·后端
GBASE2 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
阿里云云原生2 天前
香港站【企业 AI Agent 工程化实战专场】来啦,邀您7月9日见!
云原生·agent
阿里云云原生2 天前
研发域与运维域的“数字握手”:通过 Agentic Skills 实现 DevOps 全链路自动化
云原生