JAVA面试——Zookeeper

一、zookeeper是什么?

zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是google chubbynode

的开源实现,是hadoop和hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。服务器

 

 

二、zookeeper都有哪些功能?

1)集群管理:控制节点存活状态、运行请求等;分布式

2)主节点选举:主节点挂掉了以后能够从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用zookeeper能够协助完成这个过程;oop

3)分布式锁:zookeeper提供了两种锁:独占锁、共享锁。独占锁即一次只能一个线程使用资源,共享锁是读锁共享,读写互斥,便可以有多线线程同时读同一个资源,若是要使用写锁也只能有一个线程使用。zookeeper能够对分布式锁进行控制。性能

4)命名服务:在分布式系统中,经过使用命名服务,客户端应用可以根据指定名字来获取资源或服务的地址,提供者等信息。google

 

 

 

 

三、zookeeper有三种部署模式:

1)单机部署:一台集群上运行;spa

2)集群部署:多台集群运行;线程

3)伪集群部署:一台集群启动多个zookeeper实例运行。server

 

 

四、zookeeper怎么保证主从节点的状态同步?

zookeeper的核心是原子广播,这个机制保证了各个server之间的同步。实现这个机制的协议叫作zab协议。zab协议有两种模式,分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,zab就进入了恢复模式,当领导者被选举出来,且大多数server完成了和leader的状态同步之后,回复模式就结束了。状态同步保证了leader和server具备相同的系统状态。事件

 

 

五、集群中为何要有主节点?

在分布式环境中,有些业务逻辑只须要集群中的某一台机器进行执行,其余的机器能够共享这个结果,这样能够大大减小重复计算,提供性能,因此就须要主节点。

 

 

六、集群中有3台服务器,其中一个节点宕机,这个时候zookeeper还可使用吗?

能够继续使用,单数服务器只要没超过一半的服务器宕机就能够继续使用。

 

 

 

七、说一下zookeeper的通知机制?

客户端端会对某个znode创建一个watcher事件,当该znode发生变化时,这些客户端会收到zookeeper的通知,而后客户端能够根据znode变化来作出业务上的改变。

相关文章
相关标签/搜索