面试——Zookeeper


zookeeper 是什么?

它是一个开源的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。
它为分布式应用提供一致性服务,如配置维护、域名服务、分布式同步、组服务等。


有哪些功能?

独占锁:一次只能有一个线程使用资源。
共享锁:读锁共享,读写互斥。在有多线程下同时读同一个资源,同时写同一个资源。

  • 集群管理:监控节点存活状态、运行请求等。
  • 主节点选举:当主节点挂掉后可从备用节点开始新一轮选主,zookeeper 能协助完成这个过程。
  • 分布式锁:zookeeper 有独占锁共享锁,zookeeper 能对分布式锁进行控制。
  • 命名服务:在分布式系统中,通过命名服务,客户端能根据指定名字来获取资源或者服务的地址、提供者信息等。

有几种部署模式?

  • 单机部署:一台集群上运行
  • 集群部署:多集群运行
  • 伪集群部署:一台集群启动多个 zookeeper 实例运行

如何保证主从节点的状态同步?

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


集群为什么要有主节点?

在分布式环境中,有些业务逻辑只需集群中的某一台机器进行执行,其他机器可共享此结果,这样能极大降低了重复计算,提升了性能。


集群中有 3 太服务器,其中一个节点宕机了,这时 zookeeper 还能使用吗?

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


zookeeper 的通知机制是什么?

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值