【Zookeeper】常见面试题

Zookeeper常见面试题

1、 Zk是什么

zookeeper是一个分布式的,开放源码的分布式应用程序协调服务(以下简称Zk)。Zk是hadoop和hbase的重要组件。

Zk是一个为分布式应用提供一致性服务的软件,提供的功能主要包括:

  • 配置维护
  • 域名服务
  • 分布式同步
  • 组服务

2、 Zk有哪些功能?

  • 集群管理:监控节点存活状态、运行请求

  • 主节点选举:主节点挂掉后,可以从备用的节点中进行新一轮选举,该选举过程就称为主节点选举。

  • 分布式锁:zookeeper提供两种锁:独占锁,共享锁

    • 独占锁,即一次只能有一个线程使用资源,
    • 共享锁,读锁共享,读写互斥。即可以有多个线程同时读同一个资源,如果使用写锁,同时只能有一个线程使用。
    • zookeeper可以对分布式锁进行控制
  • 命名服务:分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源或服务的地址提供者等信息

3、 Zk有哪几种部署模式

Zk有三种部署模式:

  1. 单机部署:一台集群上运行;
  2. 集群部署:多台集群运行;
  3. 伪集群部署:一台集群启动多个zookeeper实例,并运行;

4、 Zk怎么保证主从节点的状态同步

Zk的核心:原子广播,保证了各个server之间的同步。实现这个机制的协议叫做zab协议。

zab协议有两种模式:

  1. 恢复模式(选主)
  2. 广播模式(同步)

服务启动/主节点宕机后,zab便进入恢复模式;选举主节点,且大多数server完成了与主节点状态同步之后,恢复模式结束。

状态同步保证了主节点与从节点具有相同的系统状态。

5、集群中为什么要有主节点?

分布式环境中,有些业务逻辑只需要集群中的某台机器进行执行,其他的机器可以共享这个结果,可以大大减少重复计算,提高性能

6、 集群中,有3台服务器,其中一个节点宕机了,此时Zk还可以使用吗?

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

7、讲一下Zk的通知机制

客户端会对某个znode建立一个watcher事件。

当该znode发生变化时,这些客户端会收到zookeeper的通知,然后可以根据znode变化对应地做出业务上的改变。

猜你喜欢

转载自blog.csdn.net/weixin_40849588/article/details/107695077
今日推荐