2022年java秋招面试,程序员求职必看的zookeeper面试题(代码片段)

麒麟攻城狮 麒麟攻城狮     2022-11-28     717

关键词:

前言

大公司面试特别喜欢问 Zookeeper,因为 Zookeeper 确实是足够的优秀,比如他的 Paxos 算法,Zab 协议,Leader 选举策略,分布式锁等都是大厂面试的高频考点。我们不仅需要熟悉使用 Zookeeper,更要了解他的底层原理,这样不论是工作还是学习都是游刃有余。
小编分享的这份2022年Java秋招备战面试题总计有1000多道面试题,包含了MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Java 并发编程、Java基础、Spring、微服务、Linux、Spring Boot 、Spring Cloud、RabbitMQ、kafka等16个专题技术点,都是小编在今年金三银四总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【持续更新中!】

1、ZooKeeper 面试题?

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

分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

Zookeeper 保证了如下分布式一致性特性

1、顺序一致性

2、原子性

3、单一视图

4、可靠性

5、实时性(最终一致性)

客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所连接的 zookeeper 机器来处理。对于写请求,这些请求会同时发给其他 zookeeper 机器并且达成一致后,请求才会返回成功。因此,随着 zookeeper 的集群机器增多,读请求的吞吐会提高但是写请求的吞吐会下降。

有序性是 zookeeper 中非常重要的一个特性,所有的更新都是全局有序的,每个更新都有一个唯一的时间戳,这个时间戳称为 zxid(Zookeeper Transaction Id)。而读请求只会相对于更新有序,也就是读请求的返回结果中会带有这个zookeeper 最新的 zxid。

2、ZooKeeper提供了什么?

1、文件系统

2、通知机制

3、Zookeeper文件系统

4、ZAB协议?

5、四种类型的数据节点 Znode

4、EPHEMERAL_SEQUENTIAL-临时顺序节点

基本特性同临时节点,增加了顺序属性,节点名后边会追加一个由父节点维护的自增整型数字。

6、Zookeeper Watcher 机制 -- 数据变更通知

工作机制

1、客户端注册 watcher

2、服务端处理 watcher

3、客户端回调 watcher

Watcher 特性总结

1、一次性

无论是服务端还是客户端,一旦一个 Watcher 被触发,Zookeeper 都会将其从相应的存储中移除。这样的设计有效的减轻了服务端的压力,不然对于更新非常频繁的节点,服务端会不断的向客户端发送事件通知,无论对于网络还是服务端的

压力都非常大。

2、客户端串行执行

客户端 Watcher 回调的过程是一个串行同步的过程。

3、轻量

3.1、Watcher 通知非常简单,只会告诉客户端发生了事件,而不会说明事件的具

体内容。

3.2、客户端向服务端注册 Watcher 的时候,并不会把客户端真实的 Watcher 对

象实体传递到服务端,仅仅是在客户端请求中使用 boolean 类型属性进行了标记。

4、watcher event 异步发送 watcher 的通知事件从 server 发送到 client 是异步的,这就存在一个问题,不同的客户端和服务器之间通过 socket 进行通信,由于网络延迟或其他因素导致客户端在不通的时刻监听到事件,由于 Zookeeper 本身提供了 ordering guarantee,即客户端监听事件后,才会感知它所监视 znode发生了变化。所以我们使用 Zookeeper 不能期望能够监控到节点每次的变化。 Zookeeper 只能保证最终的一致性,而无法保证强一致性。

5、注册 watcher getData、exists、getChildren

6、触发 watcher create、delete、setData

7、当一个客户端连接到一个新的服务器上时,watch 将会被以任意会话事件触发。当与一个服务器失去连接的时候,是无法接收到 watch 的。而当 client 重新连接时,如果需要的话,所有先前注册过的 watch,都会被重新注册。通常这是完全透明的。只有在一个特殊情况下,watch 可能会丢失:对于一个未创建的 znode的 exist watch,如果在客户端断开连接期间被创建了,并且随后在客户端连接上之前又删除了,这种情况下,这个 watch 事件可能会被丢失。

7、客户端注册Watcher实现

8、服务端处理Watcher实现

9、客户端回调Watche

客户端 SendThread 线程接收事件通知,交由 EventThread 线程回调 Watcher。 客户端的 Watcher 机制同样是一次性的,一旦被触发后,该 Watcher 就失效了。

10、ACL权限控制机制

2、DELETE:子节点删除权限,允许授权对象删除该数据节点的子节点

3、READ:数据节点的读取权限,允许授权对象访问该数据节点并读取其数据内容或子节点列表等

4、WRITE:数据节点更新权限,允许授权对象对该数据节点进行更新操作

5、ADMIN:数据节点管理权限,允许授权对象对该数据节点进行 ACL 相关设置操作

11、Chroot特性

12、会话管理

ExpirationTime_ = currentTime + sessionTimeout
ExpirationTime = (ExpirationTime_ / ExpirationInrerval + 1) *
ExpirationInterval , ExpirationInterval 是指 Zookeeper 会话超时检查时间间隔,默认 tickTime

13、服务器角色

14、Zookeeper 下 Server工作状态

服务器具有四种状态,分别是 LOOKING、FOLLOWING、LEADING、OBSERVING。

1、LOOKING:寻找 Leader 状态。当服务器处于该状态时,它会认为当前集群中没有 Leader,因此需要进入 Leader 选举状态。

2、FOLLOWING:跟随者状态。表明当前服务器角色是 Follower。

3、LEADING:领导者状态。表明当前服务器角色是 Leader。

4、OBSERVING:观察者状态。表明当前服务器角色是 Observer。

15、数据同步

16、zookeeper是如何保证事务的顺序一致性的?

17、分布式集群中为什么会有Master?

18、zk节点宕机如何处理?

19、zookeeper负载均衡和nginx负载均衡区别

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

20、Zookeeper有哪几种几种部署模式?

部署模式:单机模式、伪集群模式、集群模式。

21、集群最少要几台机器,集群规则是怎样的?

集群规则为 2N+1 台,N>0,即 3 台。

22、集群支持动态添加机器吗?

其实就是水平扩容了,Zookeeper 在这方面不太好。两种方式:

全部重启:关闭所有 Zookeeper 服务,修改配置之后启动。不影响之前客户端的会话。

逐个重启:在过半存活即可用的原则下,一台机器重启不影响整个集群对外提供服务。这是比较常用的方式。

3.5 版本开始支持动态扩容

23、Zookeeper对节点的watch监听通知是永久的吗?为什么不是永久的?

24、Zookeeper的java客户端都有哪些?

java 客户端:zk 自带的 zkclient 及 Apache 开源的 Curator。

25、chubby是什么,和zookeeper比你怎么看?

chubby 是 google 的,完全实现 paxos 算法,不开源。zookeeper 是 chubby的开源实现,使用 zab 协议,paxos 算法的变种。

26、说几个zookeeper常用的命令。

常用命令:ls get set create delete 等。

27、ZAB和Paxos算法的联系与区别?

28、Zookeeper的典型应用场景

2022年android秋招太难了,还好有这份面试题

...要会背,但只会背不能充分保证你过面试。在家准备秋招的三个月,我自己搜遍全网Android大厂高频面试题,包含牛客、掘金、简书等平台网友的笔经面经,并结合大佬解答及行业最新资讯整理而出一份《2022最新An... 查看详情

2022年android秋招太难了,还好有这份面试题

...要会背,但只会背不能充分保证你过面试。在家准备秋招的三个月,我自己搜遍全网Android大厂高频面试题,包含牛客、掘金、简书等平台网友的笔经面经,并结合大佬解答及行业最新资讯整理而出一份《2022最新An... 查看详情

2022年android秋招太难了,还好有这份面试题

...要会背,但只会背不能充分保证你过面试。在家准备秋招的三个月,我自己搜遍全网Android大厂高频面试题,包含牛客、掘金、简书等平台网友的笔经面经,并结合大佬解答及行业最新资讯整理而出一份《2022最新An... 查看详情

2022年android秋招太难了,还好有这份面试题

...要会背,但只会背不能充分保证你过面试。在家准备秋招的三个月,我自己搜遍全网Android大厂高频面试题,包含牛客、掘金、简书等平台网友的笔经面经,并结合大佬解答及行业最新资讯整理而出一份《2022最新An... 查看详情

2018年python面试必看的10个问题及答案(代码片段)

2018年Python面试必看的10个问题及答案最近开始整理python的资料,博主建立了一个qq群,希望给大家提供一个交流的同平台938587844。找工作是每个学习Python人员的目标,为了更好的找到工作,刷面试题是必不可少的,了解最新企业... 查看详情

应届生必看的2020互联网求职指南!

...,2020年互联网市场会不会受疫情影响?应届生2020年怎样求职?这是很多应届生担心的话题。下面来看看小爱的分析~疫情给互联网行业带来哪些机遇受疫情影响,传统经济面临重创,各线下餐饮、流水企业纷纷关闭,与此同时,... 查看详情

秋招最差面试体验给到华为

分享一位秋招面试华为,结果遇到奇葩主管(计算机产品部门)的同学的求职经历,估计有很多同学在面试的时候也经历过类似的情况。PS:并不是所有的华为主管都是如此!下面是正文。基本情况**时间&#... 查看详情

秋招最差面试体验给到华为

分享一位秋招面试华为,结果遇到奇葩主管(计算机产品部门)的同学的求职经历,估计有很多同学在面试的时候也经历过类似的情况。PS:并不是所有的华为主管都是如此!下面是正文。基本情况**时间&#... 查看详情

2021秋招必刷题:redis+mybatis+mysql+并发编程(1-5年必看)

2021年金三银四已过,金九银十马上就要来了,准备跳槽的同学是否都摩拳擦掌准备大面好几场,今天给大家准备了互联网面试必备(背)的1-5年Java面试者都需要掌握的面试题,内容为Redis+Mybatis+MySQL&... 查看详情

0基础java必看的44本书籍,全网超硬核!

...的书籍,也整理成到了知乎上,链接为:成为程序员必看的200本书籍!https://zhuanlan.zhihu.com 查看详情

0基础java必看的44本书籍,全网超硬核!

...的书籍,也整理成到了知乎上,链接为:成为程序员必看的200本书籍!https://zhuanlan.zhihu.com 查看详情

面试必看:java面试考点干货精讲视频教程

...ava作为目前比较火的计算机语言之一,连续几年蝉联最受程序员欢迎的计算机语言榜首,因此每年新入职Java程序员也数不胜数。很多java程序员在学成之后,会面临着就业的问题。在面试的过程中,面试技巧是一项很重要的能力... 查看详情

java程序员必看的一些书籍

1.《Java编程思想第四版》2.《HeadFirst设计模式》3.《Java并发编程艺术》4.《深入理解Java虚拟机第3版》5.《Liunx就该这么学》6.《高性能MySQL第3版》7.《Redis设计与实现第二版》8.《Spring实战第四版》9.《SpringBoot揭秘:快速构建微服务... 查看详情

2022年努力奋斗的句子,学java的必看

生活不止有学习,还有文案:1、只要你不怂,生活没有办法撂倒你。2、生活就是麻烦加麻烦,困难叠着困难,解决他们的过程有时就是前进的过程。3、这个世界能轻而易举、毫不费劲做到的,只有贫穷和衰老,其它的都需要努... 查看详情

2022年最新java经典面试800题面试必备,查漏补缺;多线程+spring+jvm调优+分布式+redis+算法

前言春招,秋招,社招,我们Java程序员的面试之路,是挺难的,过了HR,还得被技术面,小刀在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个... 查看详情

大数据求职必看:经典的大数据面试问题

博客来源:http://www.sohu.com/a/138204769_236714在开始之前,首先要确定的一个问题:什么是大数据?大数据(bigdata,megadata),或称巨量资料,指的是需要新处理模式才能具有更强的决策力、洞察力和流程优化能力... 查看详情

2022年总结:我的实习秋招之旅

回顾一整个2022,似乎大部分时间都是在工作(实习),不知不觉,博客已经到了第6个年头了,说来惭愧,今年没能持续输出好的博客。2022注定是一个不平凡的一年,先说说实习吧,从年初的2... 查看详情

面试秘籍《2023年android中高级最全面试真题答案解析》原题命中率超高

...接有效的指导求职者的面试复习。适用对象实习求职者、秋招求职者、春招求职者、社招求职者等Android岗求职者。覆盖范围本份资料面试原题来源于各大互联网公司、国企、央企、银行、研究所等Android岗面试过程中被问到的原... 查看详情