Zookeeper面试题 28道1
【Zookeeper是什么】 Zookeeper是一个开源的分布式协调服务,它主要负责管理分布式系统中的各种复杂配置和状态信息,确保在大规模分布式环境下的数据一致性。它作为一个集群的管理者,能够监控各个节点的状态,并根据节点的反馈进行相应的操作。Zookeeper提供了简单易用的API,使得分布式应用程序能够实现数据发布/订阅、负载均衡、命名服务、分布式锁、分布式队列等功能。它保证了分布式一致性特性的五项原则:顺序一致性、原子性、单一视图、可靠性以及实时性(最终一致性)。 【Zookeeper提供了什么】 Zookeeper的核心功能包括: 1. **文件系统**:Zookeeper提供了一个类似于文件系统的层次结构,其中的节点称为znode。每个znode都可以包含数据,并且支持读写操作。 2. **通知机制**:Zookeeper允许客户端对特定的znode设置Watcher,当znode发生变化时,客户端会收到通知,实现分布式通知功能。 【Zookeeper文件系统】 Zookeeper的文件系统具有多层级的节点命名空间,节点分为持久节点(PERSISTENT)和临时节点(EPHEMERAL)。持久节点在客户端会话结束或手动删除前一直存在;而临时节点的生命周期与客户端会话绑定,会话结束,临时节点自动消失。此外,还存在两种带顺序号的变体:持久顺序节点(PERSISTENT_SEQUENTIAL)和临时顺序节点(EPHEMERAL_SEQUENTIAL),它们在创建时会附加一个递增的序列号。 【ZAB协议】 ZAB(Zookeeper Atomic Broadcast)协议是Zookeeper为了保证数据一致性而设计的协议,包括崩溃恢复和消息广播两个模式。在崩溃恢复模式下,集群会选举新的Leader并进行数据同步,确保大多数节点与新Leader一致。一旦选举完成并同步完毕,系统进入消息广播模式,Leader接收并处理事务请求。 【四种类型的数据节点Znode】 - **PERSISTENT**:持久节点,除非手动删除,否则一直存在。 - **EPHEMERAL**:临时节点,与客户端会话绑定,会话失效则删除。 - **PERSISTENT_SEQUENTIAL**:持久顺序节点,同持久节点,但节点名后附加顺序号。 - **EPHEMERAL_SEQUENTIAL**:临时顺序节点,同临时节点,也附加顺序号。 【Zookeeper Watcher机制】 Watcher是Zookeeper中的一个重要特性,它允许客户端注册监听器来跟踪znode的变化。当znode状态改变时,服务端会通知客户端。Watcher的工作流程包括客户端注册、服务端处理和客户端回调。Watcher具有以下特性: - **一次性**:触发后即被移除。 - **客户端串行执行**:回调过程是串行同步的,确保回调操作的顺序性。 - **轻量级**:通知只告知事件发生,不包含具体信息,且注册时不会立即发送事件。 通过以上分析,我们可以看出Zookeeper在分布式环境中起着至关重要的作用,它的各种机制保证了数据的一致性和高可用性,为分布式应用提供了可靠的协调服务。
剩余9页未读,继续阅读
- 粉丝: 25
- 资源: 311
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0