您当前的位置:首页 > 互联网百科 > 大数据

Zookeeper 面试总结

时间:2020-08-11 11:26:38  来源:  作者:

一、zk是什么:

1、个人理解zk=文件系统+通知机制。

2、zk是一个分布式的应用程序协调服务,我理解的就是有两台集器A、B,A对一个数据进行了操作,B是如何知道的,这个就需要zk的支持。

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

二、zk的初始化选举机制:

1、首先一般选举里面都有2N+1台集器,如果是三台机器的A、B、C,A和B都会选举自己,每次投票会包括推举的服务器的myid和zxid,使用(myid,zxid)来表示。

2、集群中的服务器都接受到投票时,首先判断投票的有效性,如检查是不是本轮的投票,是否是looking状态的机器。

3、处理投票,比较zxid大小,越大权重越大,如果相同再比较myid。

4、统计投票。

5、改变服务器的状态。

ps:注意:在这个过程中,有个重要的数据结构,electionEpoch即逻辑时钟,用来判断是否在同一轮选举周期中,每次进入新的一轮投票都会自增,还有一个state,表示当前服务器的状态。

三、zk的运行过程中leader崩溃选举机制:

1、状态变更,余下所有的observing服务器都会将自己的服务器状态变成looking状态。

2、每个server会发起投票。

3、接受各个服务器的投票。

4、处理投票。

5、统计投票。

6、改变服务器的状态。

注意:其实崩溃选举机制和初始化差不多,但是值得注意一点是每个机器中的electionEpoch,也就是逻辑时钟,如果有机器宕机的话,这个数值是和正常的机器不一样的,所以需要判断这个值不是正常值的机器投票数据是否是正常的。

四、zk中的znode节点:

1、四种类型:(1)、持久化目录节点。(2)、持久化顺序编号目录节点。(3)、临时目录节点。(4)、临时顺序编号目录节点。

五、zk中的监控原理:

1、zk类似于linux中的目录节点树方式的数据存储,即分层命名空间,zk并不是专门存储数据的,它的作用是主要是维护和监控存储数据的状态变化,通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,zk中的杰点的数据上限时1M。

2、zk中的wathc机制:client端会对某个znode建立一个watcher事件,当该znode发生变化时,这些client会收到zk的通知,然后client可以根据znode变化来做出业务上的改变等。

3、图说明:

Zookeeper 面试总结

4、main方法会创建zkClient,在创建zkClient的时候,会创建出listener进程和connect进程。一个是监控进程一个是网络连接进程。当zkClient调用getChildren等方法注册监听器的时候,connect进程向zk注册监听器,注册后的缉监听器位于zk的监听器列表中,监听器列表中记录了zkClient的ip地址,端口号,要监控的目录,一旦目标文件发生了改变,zk就会把这条消息发送给对应的zkClient的listener进程,listener进程接受到后,就会执行process方法。在process方法中针对发生的事件进行处理。

Zookeeper 面试总结

六、zk的职者:

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

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

3、集群管理:是否有机器退出和加入、选举master。对于机器的退出,所有机器约定在父目录下创建临时目录,对于新机器的加入,所有机器创建临时顺序编号目录节点。

4、分布式锁:分为两类,一个是保持独占:客户端需要的时候,就去通过createznode的方式实现,所有客户端都去创建/distribute_lock节点,用完就删除节点就行了。一个是控制时序,/distribute_lock已经预先存在,所有客户端在它下面创建临时顺序编号目录节点。主要流程是:客户端在获取分布式锁的时候在locker节点下创建临时顺序节点,释放锁的时候就删除,客户端首先调用createZnode放在在locker创建临时顺序节点,然后调用getChildren来获取locker下面的所有子节点,此时不用设置watch,客户端获取了所有子节点的path之后,反正最后要找到最小序号的那个节点,调用exist方法,同时对其注册事件监听器

5、队列管理:两种类型的队列,一种是同步队列,一个是按照FIFO方式进行入队和出队,第二种保证了队列消息的不会丢失,因为会在特定的目录下创建一个persistent_sequential节点,创建成功时watcher通知等待的队列,队列删除序列号最小的节点,此场景下,zk中的znode用于消息存储,znode存储的数据就是消息队列中的消息内容,sequential序列号就是消息的编号,按序列取出即可。

七、zk中的数据复制:

1、作用:(1)容错。(2)提高系统的扩展功能。(3)提高性能。

2、数据复制分为两种:

(1)、写主,对数据的修改提交给指定节点,读没有限制,可以在任意的节点读取数据。

(2)、写任意:对数据的修改提交给任意的节点,读也是任意节点。

八、zk的工作原理:

1、核心就是原子广播。在ZooKeeper中所有的事务请求都由一个主服务器也就是Leader来处理,其他服务器为Follower,Leader将客户端的事务请求转换为事务Proposal,并且将Proposal分发给集群中其他所有的Follower,然后Leader等待Follwer反馈,当有 过半数(>=N/2+1) 的Follower反馈信息后,Leader将再次向集群内Follower广播Commit信息,Commit为将之前的Proposal提交。

2、保证数据的一致性:

(1)、顺序的一致性。

(2)、原子性。

(3)、单一的系统映像。

(4)、持久性。

3、ZAB协议的两种实现方式:

(1)、恢复模式:当服务启动或在leader崩溃后,ZAB就进入了恢复模式,在leader选举出来之前,且大多数server完成和leader的状态同步以后,恢复模式就结束了。在这个过程中,要保证被leader提交的proposal最终被所有的follower执行,确保那些只在leader提出的proposal被丢弃。

(2)、广播模式:即leader提出一个决议,由follower进行投票,leader对投票结果进行计算决定是否通过决议,如果通过执行该决议,否则什么都不做。

九、zk的watch机制:

1、一次性触发数据改变时,一个watch event会被发送到client,但是client只会接收到一次这样的消息。

2、watch event异步发送到watcher的通知事件从server发送到client是异步的,但是可能由于网络延迟原因,所有导致客户端在不同时刻监听到事件,zk只保证最终的一致性,而无法保证强一致性。

3、数据监视由getData和exists方法,getchildren设置了子节点监视。

4、注册watcher:getData、exists、getChildren。

5、触发wathcer:create、delete、setData。

十、zk的思维导图:

Zookeeper 面试总结


Tags:Zookeeper   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、准备三台机器这里我使用VirtualBox创建3个虚拟机来进行部署zk集群,VirtualBox不了解的可自行百度; 二、部署linux系统此处不讲解linux部署,很简单,百度一下很多教程的部署...【详细内容】
2021-12-08  Tags: Zookeeper  点击:(16)  评论:(0)  加入收藏
zookeeper动物管理员,是一个很形象的名字,是一个分布式协调服务。它可以用来做分布式配置管理,服务注册及发现,分布式锁。在CAP中,属于CP型。下图是zookeeper的架构图: 图中,绿色的...【详细内容】
2021-11-16  Tags: Zookeeper  点击:(38)  评论:(0)  加入收藏
环境:Spring Boot 2.3.9 + Spring Cloud Hoxton.SR8服务发现注册请参考《SpringCloud Zookeeper服务发现及负载均衡 》zookeeper安装配置请参考《Kafka(zookeeper)环境配置超级...【详细内容】
2021-04-06  Tags: Zookeeper  点击:(276)  评论:(0)  加入收藏
ZK(zookeeper)是微服务解决方案中拥有服务注册发现最为核心的环境,是微服务的基石。作为服务注册发现模块,并不是只有ZK一种产品,目前得到行业认可的还有:Eureka、Consul。这里我...【详细内容】
2021-03-04  Tags: Zookeeper  点击:(178)  评论:(0)  加入收藏
前三篇讲了Zookeeper的特性、客户端使用和集群原理、典型使用场景实践,本篇重点深入了解ZAB协议以及源码实现的解析。...【详细内容】
2020-10-08  Tags: Zookeeper  点击:(85)  评论:(0)  加入收藏
某天程序员小白参加面试:几番苦战之后,面试进入白热化阶段。面试官大开大合,小白见招拆招。一时之间,难解难分,两人对拆数十回合不分胜负。说时迟,那时快,小白的左手像火焰一般炙热...【详细内容】
2020-08-18  Tags: Zookeeper  点击:(112)  评论:(0)  加入收藏
一、zk是什么:1、个人理解zk=文件系统+通知机制。2、zk是一个分布式的应用程序协调服务,我理解的就是有两台集器A、B,A对一个数据进行了操作,B是如何知道的,这个就需要zk的支持。...【详细内容】
2020-08-11  Tags: Zookeeper  点击:(58)  评论:(0)  加入收藏
典型应用场景Apache HBaseHBase是一个通常与Hadoop一起使用的数据存储仓库。在HBase中,ZooKeeper用于选举一个集群内的主节点,以便跟踪可用的服务器,并保存集群的元数据。Apach...【详细内容】
2020-07-29  Tags: Zookeeper  点击:(45)  评论:(0)  加入收藏
如上图所示,kafaka集群的 broker,和 Consumer 都需要连接 Zookeeper。 Producer 直接连接 Broker。Producer 把数据上传到 Broker,Producer可以指定数据有几个分区、几个备份...【详细内容】
2020-06-15  Tags: Zookeeper  点击:(124)  评论:(0)  加入收藏
本文主要分享一下zookeeper的一些基本概念,在正式进入正题前,和大家聊一聊刚入行时我的面试经验,可以说是耿直的有些可爱。面试官:用过zookeeper 吗?我:用过啊,给dubbo提供服务的...【详细内容】
2020-04-01  Tags: Zookeeper  点击:(141)  评论:(0)  加入收藏
▌简易百科推荐
张欣安科瑞电气股份有限公司 上海嘉定 201801 摘要:随着电力行业各系统接入,海量数据涌现,如何利用电网信息化中大量数据,对客户需求进行判断分析,服务于营销链条,提升企业市场竞...【详细内容】
2021-12-14  安科瑞张欣    Tags:大数据   点击:(9)  评论:(0)  加入收藏
1、什么是数据分析结合分析工具,运用数据分析思维,分析庞杂数据信息,为业务赋能。 2、数据分析师工作的核心流程:(1)界定问题:明确具体问题是什么;●what 发生了什么(是什么)●why 为...【详细内容】
2021-12-01  逆风北极光    Tags:大数据   点击:(25)  评论:(0)  加入收藏
在实际工作中,我们经常需要整理各个业务部门发来的数据。不仅分散,而且数据量大、格式多。单是从不同地方汇总整理这些原始数据就花了大量的时间,更不用说还要把有效的数据收集...【详细内容】
2021-11-30  百数    Tags:数据   点击:(21)  评论:(0)  加入收藏
数据作为新的生产要素,其蕴含的价值日益凸显,而安全问题却愈发突出。密码技术,是实现数据安全最经济、最有效、最可靠的手段,对数据进行加密,并结合有效的密钥保护手段,可在开放环...【详细内容】
2021-11-26  炼石网络    Tags:数据存储   点击:(17)  评论:(0)  加入收藏
导读:网易大数据平台的底层数据查询引擎,选用了Impala作为OLAP查询引擎,不但支撑了网易大数据的交互式查询与自助分析,还为外部客户提供了商业化的产品与服务。今天将为大家分享...【详细内容】
2021-11-26  DataFunTalk    Tags:大数据   点击:(15)  评论:(0)  加入收藏
导读:数据挖掘是一种发现知识的手段。数据挖掘要求数据分析师通过合理的方法,从数据中获取与挖掘项目相关的知识。作者:赵仁乾 田建中 叶本华 常国珍来源:华章科技数据挖掘是一...【详细内容】
2021-11-23  华章科技  今日头条  Tags:数据挖掘   点击:(20)  评论:(0)  加入收藏
今天再给大家分享一个不错的可视化大屏分析平台模板DataColour。 data-colour 可视化分析平台采用前后端分离模式,后端架构设计采用微服务架构模式。 前端技术:Angularjs、Jq...【详细内容】
2021-11-04  web前端进阶    Tags:DashboardClient   点击:(39)  评论:(0)  加入收藏
在Kubernetes已经成了事实上的容器编排标准之下,微服务的部署变得非常容易。但随着微服务规模的扩大,服务治理带来的挑战也会越来越大。在这样的背景下出现了服务可观测性(obs...【详细内容】
2021-11-02  大数据推荐杂谈    Tags:Prometheus   点击:(40)  评论:(0)  加入收藏
同一产品对老客户的要价竟然比新客户要高?这是当下“大数据杀熟”的直接结果。近年来,随着平台经济的蓬勃发展,大数据在为用户服务之外,也引发了多种不合理现象。为了有效遏制“...【详细内容】
2021-10-29    海外网   Tags:大数据   点击:(31)  评论:(0)  加入收藏
本人03年开始从事贸易行业,多年来一直致力于外贸获客和跨境电商选品等领域,最近有些小伙伴反馈海关数据演示的都挺好为啥用起来不是那么回事?大家看到数据时关注的有产品、采购...【详细内容】
2021-10-28  QD云龙    Tags:数据   点击:(33)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条