博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Zookeeper】Zookeeper初级面试七小问。
阅读量:4293 次
发布时间:2019-05-27

本文共 1099 字,大约阅读时间需要 3 分钟。

半路出家程序猿 2019-05-06 11:53:00

【Zookeeper】Zookeeper初级面试七小问。

 

1.zookeeper 是什么?

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

2. zookeeper 都有哪些功能?

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

主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用 zookeeper 可以协助完成这个过程。

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

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

3. zookeeper 有几种部署模式?

zookeeper 有三种部署模式:

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

集群部署:多台集群运行;

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

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

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

zab 协议有两种模式,分别是恢复模式(选主)和广播模式(同步)。

当服务启动或者在领导者崩溃后,zab 就进入了恢复模式,当领导者被选举出来,且大多数 server 完成了和 leader 的状态同步以后,恢复模式就结束了。

状态同步保证了 leader 和 server 具有相同的系统状态。

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

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

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

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

7. 说一下 zookeeper 的通知机制?

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

转载地址:http://oozws.baihongyu.com/

你可能感兴趣的文章
CTA策略05_AtrRsiStrategy
查看>>
CTA策略06_BollChannelStrategy
查看>>
CTA策略07_MultiTimeframeStrategy
查看>>
Ubuntu 14.04安装和卸载搜狗拼音输入法
查看>>
ubuntu 18.04 设置中文输入法
查看>>
ubuntu使用之-rime
查看>>
Ubuntu 18.04/18.10快速开启Google BBR的方法
查看>>
Ubuntu 16.04启用 TCP 拥塞控制之 BBR
查看>>
TCP BBR算法加速效果实测(比对)
查看>>
解决方案大全ImportError: libta_lib.so.0: cannot open shared object file: No such file or directory
查看>>
anaconda报错 ImportError: No module named conda.cli
查看>>
vnpy策略回测如何设置滑点手续费和size
查看>>
virmach主机购买和使用
查看>>
Ubuntu开启Mongodb 外网访问
查看>>
海龟交易法则11_历史测试的谎言
查看>>
海龟交易法则12_脚踏实地地测试
查看>>
海龟交易法则13_系统
查看>>
jq使用教程09_ 教程集合帖-伙伴们贡献,不断更新(4.17)
查看>>
jq使用教程01_最贴心教程,安装JQData全靠这篇指南
查看>>
jq使用教程02_安装的问题
查看>>