汇总智一面Java刷题,问答题之ZooKeeper

Posted 黎黎吧啦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇总智一面Java刷题,问答题之ZooKeeper相关的知识,希望对你有一定的参考价值。

作为新手菜鸟,在线测评是首选!

推荐一个超棒的技术人才在线测评网站——智一面,不仅免费还能满足刷题/测评的需求!实时通过测评了解自身不足,加以改正。
>在线测评:Java实习/初级

ZooKeeper
是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

1、ZooKeeper 提供了什么?
1、文件系统
2、通知机制

2、 Zookeeper 文件系统
Zookeeper 提供一个多层级的节点命名空间(节点称为 znode)。与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。
Zookeeper为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得Zookeeper 不能用于存放大量的数据,每个节点的存放数据上限为1M。

3、ZAB 协议?
ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持崩溃恢复的原子广播协议。
ZAB 协议包括两种基本的模式:崩溃恢复和消息广播。
当整个 zookeeper 集群刚刚启动或者 Leader 服务器宕机、重启或者网络故障导致不存在过半的服务器与 Leader 服务器保持正常通信时,所有进程(服务器)进入崩溃恢复模式,首先选举产生新的 Leader 服务器,然后集群中 Follower 服务器开始与新的 Leader 服务器进行数据同步,当集群中超过半数机器与该 Leader服务器完成数据同步之后,退出恢复模式进入消息广播模式,Leader 服务器开始接收客户端的事务请求生成事物提案来进行事务请求处理。

4、Zookeeper 下 Server 工作状态
服务器具有四种状态,分别是 LOOKING、FOLLOWING、LEADING、OBSERVING。
LOOKING:寻找 Leader 状态。当服务器处于该状态时,它会认为当前集群中没有 Leader,因此需要进入Leader 选举状态。
FOLLOWING:跟随者状态。表明当前服务器角色是 Follower。
LEADING:领导者状态。表明当前服务器角色是 Leader。
OBSERVING:观察者状态。表明当前服务器角色是Observer。

5、zookeeper 负载均衡和 nginx 负载均衡区别
zk 的负载均衡是可以调控,nginx 只是能调权重,其他需要可控的都需要自己写插件;但是nginx 的吞吐量比 zk 大很多,应该说按业务选择用哪种方式。

6、Zookeeper 有哪几种几种部署模式?
部署模式:单机模式、伪集群模式、集群模式。

7、集群最少要几台机器,集群规则是怎样的?
集群规则为 2N+1 台,N>0,即 3 台。

8、Zookeeper 的 java 客户端都有哪些?
java 客户端:zk 自带的 zkclient 及 Apache 开源的 Curator。

9、说几个 zookeeper 常用的命令。
常用命令:ls get set create delete 等。

10、Zookeeper 的典型应用场景
Zookeeper 是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。
通过对 Zookeeper 中丰富的数据节点进行交叉使用,配合 Watcher 事件通知机制,可以非常方便的构建一系列分布式应用中年都会涉及的核心功能,如:
数据发布/订阅
负载均衡
命名服务
分布式协调/通知
集群管理
Master 选举
分布式锁
分布式队列

以上是关于汇总智一面Java刷题,问答题之ZooKeeper的主要内容,如果未能解决你的问题,请参考以下文章

99%的程序员都必备掌握的MySQL,问答题总结篇一(内附刷题网站)

满意offer之JVM虚拟机问答汇总

Java面试题超详细讲解系列之十九Zookeeper篇

LeetCode 题解汇总

leetcode刷题3.最长不重复子串——Java版(猿辅导一面)

Android之70道面试题汇总——让你一面而就