《八股文》9道 Zookeeper 面试题

Zookeeper是一个高性能、高可用的分布式协调服务,用于解决数据一致性问题。其集群包括Leader、Follower和Observer节点,采用ZAB协议确保数据一致性。常用作命名服务、分布式协调、集群管理和Master选举。Wather监听机制提供事件通知,ACL进行权限控制。Zookeeper与Eureka、Consul、Nacos等注册中心各有特点,CAP理论强调在分区容忍性下,只能在一致性与可用性中取舍。
摘要由CSDN通过智能技术生成

谈谈你对Zookeeper的理解?

Zookeeper是一个开源的分布式协调服务,由雅虎公司创建,由于最初雅虎公司的内部研究小组的项目大多以动物的名字命名,所以后来就以Zookeeper(动物管理员)来命名了,而就是由Zookeeper来负责这些分布式组件环境的协调工作。

他的目标是可以提供高性能、高可用和顺序访问控制的能力,同时也是为了解决分布式环境下数据一致性的问题。

集群

首先,Zookeeper集群中有几个关键的概念,Leader、Follower和Observer,Zookeeper中通常只有Leader节点可以写入,Follower和Observer都只是负责读,但是Follower会参与节点的选举和过半写成功,Observer则不会,他只是单纯的提供读取数据的功能。

通常这样设置的话,是为了避免太多的从节点参与过半写的过程,导致影响性能,这样Zookeeper只要使用一个几台机器的小集群就可以实现高性能了,如果要横向扩展的话,只需要增加Observer节点即可。

Zookeeper建议集群节点个数为奇数,只要超过一半的机器能够正常提供服务,那么整个集群都是可用的状态。

数据节点Znode

Zookeeper中数据存储于内存之中,这个数据节点就叫做Znode,他是一个树形结构,比如/a/b/c类似。

而Znode又分为持久节点、临时节点、顺序节点三大类。

持久节点是指只要被创建,除非主动移除,否则都应该一直保存在Zookeeper中。

临时节点不同的是,他的生命周期和客户端Session会话一样,会话失效,那么临时节点就会被移除。

还有就是临时顺序节点和持久顺序节点,除了基本的特性之外,子节点的名称还具有有序性。

会话Session

会话自然就是指Zookeeper客户端和服务端之间的通信,他们使用TCP长连接的方式保持通信,通常,肯定会有心跳检测的机制,同时他可以接受来自服务器的Watch事件通知。

事件监听器Wather

用户可以在指定的节点上注册Wather,这样在事件触发的时候,客户端就会收到来自服务端的通知。

权限控制ACL

Zookeeper使用ACL来进行权限的控制,包含以下5种:

  1. CREATE,创建子节点权限

  2. DELETE,删除子节点权限

  3. READ,获取节点数据和子节点列表权限

  4. WRITE,更新节点权限

  5. ADMIN,设置节点ACL权限

所以,Zookeeper通过集群的方式来做到高可用,通过内存数据节点Znode来达到高性能,但是存储的数据量不能太大,通常适用于读多写少的场景。

Zookeeper有哪些应用场景?

  1. 命名服务Name Service,依赖Zookeeper可以生成全局唯一的节点ID,来对分布式系统中的资源进行管理。

  2. 分布式协调,这是Zookeeper的核心使用了。利用Wather的监听机制,一个系统的某个节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值