Zookeeper 面试题

zookeeper 是什么?
  • ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
  • 分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。
  • Zookeeper保证了如下分布式一致性特性:顺序一致性、原子性、单一视图、可靠性、实时性(最终一致性)。
  • 客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所连接的zookeeper机器来处理。对于写请求,这些请求会同时发给其他zookeeper机器并且达成一致后,请求才会返回成功。因此,随着zookeeper的集群机器增多,读请求的吞吐会提高但是写请求的吞吐会下降。
  • 有序性是zookeeper中非常重要的一个特性,所有的更新都是全局有序的,每个更新都有一个唯一的时间戳,这个时间戳称为zxid(Zookeeper Transaction Id)。而读请求只会相对于更新有序,也就是读请求的返回结果中会带有这个zookeeper最新的zxid。
zookeeper 都有哪些功能
  • 集群管理:监控节点存活状态,运行请求等。
  • 主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选举,主节点选举说的就是这个选举过程,使用zookeeper可以协助完成这个过程。
  • 分布式锁:Zookeeper 提供两种锁:独占锁,共享锁。独占锁即一次只能有一个下半场隔板柜使用资源,共享锁是读锁共享,读写互斥,即可以有多线程同时读同一个资源,如果要使用写锁也只能有一个线程使用,Zookeeper 可以对分布式锁进行控制。
  • 命名服务:在分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源或服务的地址,提供者等信息。
ZooKeeper提供了什么?
  • 文件系统。
  • 通知机制。
zookeeper 有几种部署模式?
  • 有三种部署模式:
    1)单机模式:一台集群运行。
    2)伪集群模式:一台集群启动多个Zookeeper实例运行。
    3)集群模式:多台集群运行。
zookeeper 怎么保证主从节点的状态同步?
  • Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步,实现这个机制的协议叫做zab协议,zab协议有两种模式,分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者奔溃后,zab就进入了恢复模式,当领导者呗选举出来,且大多数Server完成了和leader的状态同步以后,恢复模式就结束了,状态同步保证了leader 和Server具有相同的系统状态。
集群中为什么要有主节点?
  • 在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,
  • 其他的机器可以共享这个结果,这样可以大大减少重复计算,提高性能,所以就需要主节点。
集群中有 3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗?
  • 可以继续使用,单数服务器只要没超过一半的服务器宕机就可以继续使用。
说一下 zookeeper 的通知机制?
  • 客户端端会对某个 znode 建立一个 watcher 事件,当该 znode 发生变化时,这些客户端会收到 zookeeper 的通知,然后客户端可以根据 znode 变化来做出业务上的改变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值