Zookeeper面试试题
在现实的学习、工作中,我们都不可避免地要接触到试题,借助试题可以检测考试者对某方面知识或技能的掌握程度。那么一般好的试题都具备什么特点呢?以下是小编整理的Zookeeper面试试题,希望对大家有所帮助。
一、谈下你对Zookeeper的认识?
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的.功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
二、Zookeeper都有哪些功能?
1、集群管理:监控节点存活状态、运行请求等;
2、主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用Zookeeper可以协助完成这个过程;
3、分布式锁:Zookeeper提供两种锁:独占锁、共享锁。独占锁即一次只能有一个线程使用资源,共享锁是读锁共享,读写互斥,即可以有多线线程同时读同一个资源,如果要使用写锁也只能有一个线程使用。Zookeeper可以对分布式锁进行控制。
4、命名服务:在分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源或服务的地址,提供者等信息。
三、谈下你对ZAB协议的了解?
ZAB协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议。ZAB协议包括两种基本的模式:崩溃恢复和消息广播。
当整个Zookeeper集群刚刚启动或者Leader服务器宕机、重启或者网络故障导致不存在过半的服务器与Leader服务器保持正常通信时,所有服务器进入崩溃恢复模式,首先选举产生新的Leader服务器,然后集群中Follower服务器开始与新的Leader服务器进行数据同步。
当集群中超过半数机器与该Leader服务器完成数据同步之后,退出恢复模式进入消息广播模式,Leader服务器开始接收客户端的事务请求生成事物提案来进行事务请求处理。
四、Zookeeper怎么保证主从节点的状态同步?
Zookeeper的核心是原子广播机制,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式和广播模式。
1、恢复模式
当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和server具有相同的系统状态。
2、广播模式
一旦leader已经和多数的follower进行了状态同步后,它就可以开始广播消息了,即进入广播状态。这时候当一个server加入ZooKeeper服务中,它会在恢复模式下启动,发现leader,并和leader进行状态同步。
待到同步结束,它也参与消息广播。ZooKeeper服务一直维持在Broadcast状态,直到leader崩溃了或者leader失去了大部分的followers支持。
五、Zookeeper有几种部署模式?
Zookeeper有三种部署模式:
1、单机部署:一台集群上运行;
2、集群部署:多台集群运行;
3、伪集群部署:一台集群启动多个Zookeeper实例运行。
六、说一下Zookeeper的通知机制?
client端会对某个znode建立一个watcher事件,当该znode发生变化时,这些client会收到zk的通知,然后client可以根据znode变化来做出业务上的改变等。