面试简单整理之zookeeper

157.zookeeper 是什么?

 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。
分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协
调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。

158.zookeeper 都有哪些功能?

1.配置中心
2.命名服务
3.Master选举
4.分布式锁 -------------------redis锁、数据库锁
5.服务注册与推送

159.zookeeper 有几种部署模式?

  单机模式,集群模式,伪集群模式

160.zookeeper 怎么保证主从节点的状态同步?

Zookeeper的核心是原子广播机制,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式和广播模式。
(1) 恢复模式
当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和server具有相同的系统状态。
(2) 广播模式
一旦Leader已经和多数的Follower进行了状态同步后,他就可以开始广播消息了,即进入广播状态。这时候当一个Server加入ZooKeeper服务中,它会在恢复模式下启动,发现Leader,并和Leader进行状态同步。待到同步结束,它也参与消息广播。ZooKeeper服务一直维持在Broadcast状态,直到Leader崩溃了或者Leader失去了大部分的Followers支持。

161.集群中为什么要有主节点?

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

163.zookeeper 的通知机制? 

  客户端在向 ZooKeeper 服务器注册 Watcher 的同时,会将 Watcher 对象存储在客户端的 WatchManager 中。当ZooKeeper 服务器触发 Watcher 事件后,会向客户端发送通知,客户端线程从 WatchManager 的实现类中取出对应的 Watcher 对象来执行回调逻辑。

164.dubbo使用zookeeper做注册中心,注册中心集群全都挂掉,发布者和订阅者之间还能通信么?

    可以。消费者启动时会从zk拉取注册的生产者列表存在本地,调用时使用本地存储的地址进行调用。但是无法获取最新的服务列表。

上一篇:【Eclipse】Failed to load the JNI shared library


下一篇:C++笔记019:C++中的const修饰的是一个真正的常量