前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~

内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈

目录

ZooKeeper面试题

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

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

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

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

28. Zookeeper的典型应用场景


ZooKeeper面试题

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算法的联系与区别?

相同点:

1、两者都存在一个类似于 Leader进程的角色,由其负责协调多个 Follower进程的运行

2、Leader进程都会等待超过半数的 Follower做出正确的反馈后,才会将一个提案进行提交

3、ZAB协议中,每个 Proposal中都包含一个 epoch值来代表当前的 Leader周期,Paxos中名字为 Ballot

不同点:

ZAB用来构建高可用的分布式数据主备系统(Zookeeper),Paxos是用来构建分布式一致性状态机系统。

28. Zookeeper的典型应用场景

Zookeeper是一个典型的发布/订阅模式的分布式数据管理与协调框架,开发人员可以使用它来进行分布式数据的发布和订阅。

通过对 Zookeeper中丰富的数据节点进行交叉使用,配合 Watcher事件通知机制,可以非常方便的构建一系列分布式应用中年都会涉及的核心功能,如:

1、数据发布/订阅

2、负载均衡

3、命名服务

4、分布式协调/通知5、集群管理

6、Master选举

7、分布式锁

8、分布式队列

1.数据发布/订阅

介绍

数据发布/订阅系统,即所谓的配置中心,顾名思义就是发布者发布数据供订阅者进行数据订阅。

目的

动态获取数据(配置信息)

实现数据(配置信息)的集中式管理和数据的动态更新

设计模式

Push模式

Pull模式

数据(配置信息)特性

1、数据量通常比较小

2、数据内容在运行时会发生动态更新3、集群中各机器共享,配置一致

如:机器列表信息、运行时开关配置、数据库配置信息等

基于 Zookeeper的实现方式

数据存储:将数据(配置信息)存储到 Zookeeper上的一个数据节点

数据获取:应用在启动初始化节点从 Zookeeper数据节点读取数据,并

在该节点上注册一个数据变更 Watcher

数据变更:当变更数据时,更新 Zookeeper对应节点数据,Zookeeper

会将数据变更通知发到各客户端,客户端接到通知后重新读取变更后的数据即可。

2.负载均衡

zk的命名服务

命名服务是指通过指定的名字来获取资源或者服务的地址,利用 zk创建一个全局的路径,这个路径就可以作为一个名字,指向集群中的集群,提供的服务的地址,或者一个远程的对象等等。

分布式通知和协调

对于系统调度来说:操作人员发送通知实际是通过控制台改变某个节点的状态,然后 zk将这些变化发送给注册了这个节点的 watcher的所有客户端。

对于执行情况汇报:每个工作进程都在某个目录下创建一个临时节点。并携带工作的进度数据,这样汇总的进程可以监控目录子节点的变化获得工作进度的实时的全局情况。

zk的命名服务(文件系统)

命名服务是指通过指定的名字来获取资源或者服务的地址,利用 zk创建一个全局的路径,即是唯一的路径,这个路径就可以作为一个名字,指向集群中的集群,

提供的服务的地址,或者一个远程的对象等等。

zk的配置管理(文件系统、通知机制)

程序分布式的部署在不同的机器上,将程序的配置信息放在 zk的 znode下,当有配置发生改变时,也就是 znode发生变化时,可以通过改变 zk中某个目录节点的内容,利用 watcher通知给各个客户端,从而更改配置。

Zookeeper集群管理(文件系统、通知机制)

所谓集群管理无在乎两点:是否有机器退出和加入、选举 master。

对于第一点,所有机器约定在父目录下创建临时目录节点,然后监听父目录节点的子节点变化消息。一旦有机器挂掉,该机器与 zookeeper的连接断开,其所创建的临时目录节点被删除,所有其他机器都收到通知:某个兄弟目录被删除,于是,所有人都知道:它上船了。

新机器加入也是类似,所有机器收到通知:新兄弟目录加入,highcount又有了,对于第二点,我们稍微改变一下,所有机器创建临时顺序编号目录节点,每次选

取编号最小的机器作为 master就好。

Zookeeper分布式锁(文件系统、通知机制)

有了 zookeeper的一致性文件系统,锁的问题变得容易。锁服务可以分为两类,一个是保持独占,另一个是控制时序。

对于第一类,我们将 zookeeper上的一个 znode看作是一把锁,通过 createznode的方式来实现。所有客户端都去创建 /distribute_lock节点,最终成功创建的那个客户端也即拥有了这把锁。用完删除掉自己创建的 distribute_lock节点就释放出锁。

对于第二类, /distribute_lock已经预先存在,所有客户端在它下面创建临时顺序编号目录节点,和选 master一样,编号最小的获得锁,用完删除,依次方便。

Zookeeper队列管理(文件系统、通知机制)

两种类型的队列:

1、同步队列,当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达。

2、队列按照 FIFO方式进行入队和出队操作。

第一类,在约定目录下创建临时目录节点,监听节点数目是否是我们要求的数目。

第二类,和分布式锁服务中的控制时序场景基本原理一致,入列有编号,出列按编号。在特定的目录下创建 PERSISTENT_SEQUENTIAL节点,创建成功时

Watcher通知等待的队列,队列删除序列号最小的节点用以消费。此场景下

Zookeeper的 znode用于消息存储,znode存储的数据就是消息队列中的消息内容,SEQUENTIAL序列号就是消息的编号,按序取出即可。由于创建的节点是持久化的,所以不必担心队列消息的丢失问题。

本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~

秋招面试题系列- - -Java工程师(十一)相关推荐

  1. 秋招面试题系列- - -Java 工程师(一)

    前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位.为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的 ...

  2. 商汤科技20年秋招智慧城市-数据运营工程师笔试题(2019.8.19)

    套题 商汤20年秋招智慧城市-数据运营工程师笔试题 题型 选择 * 20 + 问答 * 3 完成时间 60分钟 ❤️ 「更多数据分析真题」 <数据分析真题日刷 | 目录索引> ❤️ 「更多 ...

  3. 【数据挖掘】顺丰科技2022年秋招大数据挖掘与分析工程师笔试题

    顺丰科技2022年秋招大数据挖掘与分析工程师笔试题 笔试时间:2022-9-7 1 不定项选择题 1.python中_thread 和threading的区别 解析: _thread模块提供了基本的线 ...

  4. 2022 Java秋招面试题-必备基础

    文章目录 2022 Java秋招面试题-必备基础 一.语言基础 Java技术栈基础-语言基础 Java技术栈基础-spring Java技术栈基础-netty 二.面向对象 三.存储 redis my ...

  5. 酷狗java秋招笔试题

    酷狗java秋招笔试题 单选题 1.在命中率极高的缓存设计中,时间复杂度最差的数据结构是( B ). A. 数组 B. 链表 C. 树 D. 哈希表 2.某二叉树共有11个结点,其叶子结点只有2个.则 ...

  6. 2021网易秋招笔试题(Android开发)

    网易笔试题(2021.08.08) 校招的笔试题通常是4道编程题,时间为2个小时,每题25分. 2021秋招笔试题总结如下,包含问题和代码实现. 题1:查找关键词 查找关键词(单词在文章中出现频率&g ...

  7. 腾讯 2015秋招笔试题 编程题2:九宫格填数

    腾讯 2015秋招笔试题 编程2:九宫格填数 题目 2: 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案. 配合加减乘除,使得九宫格横竖都等于4. 智力冲浪 数字推理 请 ...

  8. 字节跳动-2020秋招-笔试题剖析【5道算法题】

    字节跳动-2020秋招-笔试题剖析[5道算法题],限时120分钟. 让我们一起来看看这些题吧! 题一:模型文件去重 [题目描述] 抖音上不同的用户类型我们有不同的用户模型文件. 我们有一个模型配置文件 ...

  9. 2022前端秋招面试题总结 阿里 腾讯 字节 百度 网易 京东 小红书 快手面试记录

    2022前端秋招面试题总结 阿里 腾讯 字节 百度 网易 京东 小红书 快手面试记录 等了百度三个月,终于发offer了,白菜价,92大佬们拒的薪资,我知足了. 排序挂了狠多,快手,蚂蚁,- 很绝望 ...

最新文章

  1. 2020年CSDN最后一波上车机会,快来~~
  2. php极验证,WebGeeker-Validation: 一个强大的 PHP 参数验证器
  3. 【暴力枚举】LeetCode 78. Subsets
  4. 记一次服务器故障及解决办法
  5. 3DMAX 创建选择集
  6. 使用airdrop在iphone与ubuntu之间共享文件
  7. 北理工珠海学院计算机分数线,北京理工大学珠海学院
  8. 将SVG 转换为png -- ImageMagick 转换 svg 为透明png 图
  9. Excel学习笔记:P1-Excel入门
  10. CAN报文解析SIGNAL的C语言实现
  11. wc2018冲刺期总结
  12. 移动设备管理与OMA DM 协议 V5(1)
  13. Chrome更新89版本后,sessionStorage丢失a标签跳转丢失sessionStorage
  14. 《操作系统学习总结》
  15. ios发布证书过期怎么办?
  16. 判断输入的年份是不是闰年
  17. 计算机音乐数字乐谱星星点灯,星星点灯-郑智化-和弦谱-《弹吧》官网tan8.com-和弦谱大全,学吉他,秀吉他...
  18. 宁芝普拉姆键盘说明书
  19. C语言:窗口控制台颜色改变(不断换色)
  20. 解析各类生鲜电商模式,哪家买菜最强?

热门文章

  1. 基于微信小程序的音乐播放器设计
  2. 本地blast详细用法
  3. 点云配准之NDT算法
  4. 计算广告(3)----搜索广告召回匹配
  5. 考研数学你必须要懂的事情
  6. Mac系统下Carina初体验
  7. 2022.01.19 - SX10-23.零钱兑换
  8. 贵州大学2021计算机分数线,贵州大学录取分数线2021是多少分(附历年录取分数线)...
  9. vsc编辑器设置背景图
  10. Centos 8 搭建samba文件共享服务(超详细)