搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
weixin_40725706
这个屌丝很懒,什么也没留下!
关注作者
热门标签
article
热门文章
1
Python江西南昌二手房源爬虫数据可视化分析大屏全屏系统 开题报告
2
从4k到42k,软件测试工程师的涨薪史,给我看哭了
3
linux centos 系统盘文件系统损坏-已解决_corruption of in-memory data detected
4
【Linux】公网远程访问AMH服务器管理面板
5
IOS 查看安装包的公钥 SHA1等信息
6
IDEA常用插件(30个)_idea插件
7
【微服务】服务网关----Gateway_gateway 服务覆盖
8
代码随想录刷题题Day29
9
什么是云服务器,阿里云优势如何?
10
周志华:“数据、算法、算力”人工智能三要素,在未来要加上“知识”| CCF-GAIR 2020...
当前位置:
article
> 正文
Zookeeper常见面试题_zookeeper 常见面试题
作者:weixin_40725706 | 2024-02-16 15:09:14
赞
踩
zookeeper 常见面试题
为什么需要
Zookeeper
例如namenode,如果没有zk,namenode读写请求要同时向主从namenode发起请求,增加额外开销
Zookeeper是什么
分布式应用程序协调服务
集群的管理者,监控着集群中各个节点的状态,根据节点节点提交的反馈进行下一步合理的操作
Zookeeper提供了什么
文件系统
通知机制
Zookeeper文件系统
分层的文件存储目录树结构,不同于文件存储系统的目录,文件存储系统目录只能存储目录,而zk的节点可以存储数据,但不适合存储大量数据,最多1m
ZNode的四种类型
概述:
节点类型在创建时就要确定,一旦创建,无法改变
当多个session都要使用一份相同的数据,数据共享,这时要用持久化节点,一份就可以
当每个session都要不同的数据,并且会话结束就要删除,用临时节点,例如高可用配置
持久化存储节点
客户端(session会话)与zk断开,该节点依旧存在
顺序持久化存储节点
客户端(session会话)与zk断开,该节点依旧存在,只是zk给该节点名称进行顺序编号
临时存储节点
客户端(session会话)与zk断开,该节点删除
顺序临时存储节点
客户端(session会话)与zk断开,该节点删除,只是zk会给该节点名称进行顺序编号
Zookeeper的通知机制
客户端注册监听(watch)他关心的目录节点,当该目录节点发生变化(增删改查),就会触发watch所关联的操作,zk会向客户端发送且仅发送一条通知给客户端,这些客户端会根据接到的znode的变化做出业务上的改变,如namenode,用于集群多节点一致性事务处理
Zookeeper都能做什么
分布式命名服务
创建一个路径后,节点路径全局唯一,可作为全局名称使用。这个名字可指向集群中的节点,提供服务的地址, 或是一个远程对象
配置管理
程序分布式部署在不同的机器上,将程序的配置放在zk的znode下,当有配置(znode)发生改变时,利用watcher通知给各个客户端,从而实现更改配置
集群管理
集群是否有机器加入、删除
每个加入集群的机器都会在父目录注册一个节点,并写入自己的状态。监控父节点的用户接到通知进行相应的处理。这个机器离开时也会删除节点,监控节点的用户也会接到通知
选举master
分布式锁
ZK能保证数据的强一致性,用户任何时候都可以相信集群中的每个节点的数据都是相同的
两种形式锁
独占锁 ,例如ZKFC
一个用户创建一个节点作为锁,另一个用户检测到该节点,代表别的用户已经锁住,如果不存在,则可以创建一个节点,代表拥有锁
时序锁
有一个节点作为父节点,其地下都是带有编号的子节点。所有想要获取锁的用户,需要在父节点下获取带有编号的子节点,编号最小的会或得锁,当编号最小的锁被释放,在重新找一个最小编号获取锁,保证或得锁的有序性
队列管理
同步队列
当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达。例如在约定目录下创建临时目录节点,监听节点目录树是否是我们要求的目录数
FIFO队列
与时序锁原理类似
Zookeeper的工作原理
最核心: 原子广播(zab协议),全称zookeeper原子消息广播协议,是一种崩溃可恢复的原子消息广播算法
zab协议之恢复模式(选主)
当系统启动或者leader崩溃后,Zab进入恢复模式,恢复模式时是不接受客户端请求的,当领导者被选出来,且大多数server完成了和leader的状态同步后,接触恢复模式。保证了leader和server的相同状态同步
zab协议之广播模式(同步)
leader选举出来后进入消息广播模式
Zab协议三个阶段
Leader选举
哪台服务器上的数据较新(ZXID较大),哪台就最有可能成为leader,通过选举线程依次比较,如果ZXID相同,则比SID,最终的服务器就是leader
同步
follower连接leader,发送给它最大的事务id,leader确认同步点,发送需要同步的消息
Leader服务器会为每个Follower服务器都准备一个队列,并将那些没有被各个Follower同步的事务以消息的形式逐个发给Follower服务器,然后leader在发送一个commit消息给follower,表示该事物已被提交,等到Follower服务器消息同步完整后,leader才真正将follower加入到follower列表中
广播
Leader会为每个follower服务器分配一个FIFO的队列,follower收到事务消息后以事务日志的形式写入到磁盘,写入成功后,会给leader服务器回复一个ACK
名词:
ZXID:事务id,标记唯一一次服务器状态的变更,64位的数字
SID:服务器标识id
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/blog/article/detail/94566
推荐阅读
article
3.0
Zookeeper
linux
服务端
集群
搭建
步骤
所需准备工作,创建三台虚拟机环境并安装好java开发工具包JDK,可以使用VM或者vagrant+virtualbox
搭建
centos/ubuntu环境,本案例基于宿主机windows10系统同时使用vagrant+virtualbox
搭建
...
[详细]
赞
踩
article
9.0
Zookeeper
节点
特性
本章节介绍一下zookeeper的
节点
特性和简单使用场景,正是由于这些
节点
特性的存在使zookeeper开发出不同的场景应用。9.0
Zookeeper
节点
特性本章节介绍一下zookeeper的
节点
特性和简单使用场景,正是由于这些
节点
特性的存...
[详细]
赞
踩
article
8.0
Zookeeper
四字
命令
教程详解
zookeeper支持某些特定的
四字
命令
与其交互,用户获取zookeeper服务的当前状态及相关信息,用户在客户端可以通过telenet或者nc(netcat)向zookeeper提交相应的
命令
。8.0
Zookeeper
四字
命令
教程详解zo...
[详细]
赞
踩
article
4.0
Zookeeper
Java
客户端
搭建
本教程使用的IDE为IntelliJIDEA,创建一个maven工程,命名为zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生API和Curator两种方式。4.0
Zookeeper
Java...
[详细]
赞
踩
article
1.0
Zookeeper
分布式
配置
服务
教程
ZooKeeper是Apache软件基金会的一个软件项目,它为大型
分布式
计算提供开源的
分布式
配置
服务
、同步
服务
和命名注册。ZooKeeper的架构通过冗余
服务
实现高可用性。
Zookeeper
的设计目标是将那些复杂且容易出错的
分布式
一致性
服务
...
[详细]
赞
踩
article
2.0
Zookeeper
安装
配置
修改zoo.cfg配置文件,将dataDir=/tmp/zookeeper修改成zookeeper
安装
目录所在的data文件夹,再添加一条添加数据日志的配置(需要根据自己的
安装
路径修改)。选择一稳定版本,本教程使用的release版本为3....
[详细]
赞
踩
article
【
Zookeeper
】
what
is
Zookeeper
?
即使正确实现了这些服务,当应用程序部署时,这些服务的不同实现也会导致管理上的复杂性。由于实现这些服务的难度很大,应用程序通常会在这方面偷工减料,这使得它们在发生变更。每次实现这些服务时,都需要做大量的工作来修复不可避免的错误和竞态条件。所有...
[详细]
赞
踩
article
11.0
Zookeeper
watcher
事件
机制原理剖析
其中客户端注册
watcher
有三种方式,调用客户端API可以分别通过getData、exists、getChildren实现,利用前面章节创建的maven工程,新建WatcherDemo类,以exists方法举例说明其原理。
11.0
Zook...
[详细]
赞
踩
article
ZooKeeper
使用详解_
zookeeper
.
sasl
.
client
=
default
:
true
,
zookeeper
.
sasl
ZooKeeper
使用详解一、概述Zookeeper:一个分布式协调服务为分布式应用
ZooKeeper
是一个分布式、开源的协调服务为分布式应用。它暴露了一组简单的原始集合,分布式应用能构建在此之上来实现更高级的服务,比如:同步、维护配置、以...
[详细]
赞
踩
article
12.0
Zookeeper
数据
同步流程
在
Zookeeper
中,主要依赖ZAB协议来实现分布式
数据
一致性。12.0
Zookeeper
数据
同步流程在
Zookeeper
中,主要依赖ZAB协议来实现分布式
数据
一致性。ZAB协议分为两部分:消息广播崩溃恢复消息广播
Zookeeper
使用单...
[详细]
赞
踩
article
10.0 Zookeeper
权限
控制
ACL
zookeeper的
ACL
(AccessControlList,访问控制表)
权限
在生产环境是特别重要的,所以本章节特别介绍一下。
ACL
权限
可以针对节点设置相关读写等
权限
,保障数据安全性。permissions可以指定不同的
权限
范围及角色。1...
[详细]
赞
踩
article
Kafka
下载(
kafka
和
jdk
、
zookeeper
、
SpringBoot
的
版本
对应关系)
Kafka
下载(
kafka
和
jdk
、
zookeeper
、
SpringBoot
的
版本
对应关系)
Kafka
下载(
kafka
和
jdk
、
zookeeper
、
SpringBoot
的
版本
对应关系)文章目录一
、
准备工作1
、
必须环境2
、
kafka
使用自带的...
[详细]
赞
踩
article
卡夫卡
消息
服务
器,单台
服务
器部署
Zookeeper
及
kafka
消息
中间件
服务
在开发环境中,为减少
服务
器成本和提高开发效率,通常在一台测试
服务
器部署各种
服务
,使用不同的本地IP和不同端口号将涉及到集群的
服务
往往跑在一台机器上模拟集群,在这里我们称做伪集群。最近在研究一个矿池的源码,在搭建
服务
的过程中
消息
中间件kafk...
[详细]
赞
踩
article
Nacos
、
Eureka
、
Zookeeper
、Consul对比
开发中,经常需要对微服务进行管理,所以需要引入一些服务治理的中间件,用于注册、发现服务,常见的服务治理中间件为。
Nacos
、
Eureka
、
Zookeeper
、Consul对比开发中,经常需要对微服务进行管理,所以需要引入一些服务治理的中间件...
[详细]
赞
踩
article
Zookeeper
实战 |
Zookeeper
和
Spring
Cloud
相结合解决
分布式
锁、服务注册与发现、
配置管理
_springcloud
zookeeper
分布式
锁
Zookeeper
是一个开源的
分布式
协调服务,它起源于Google的Chubby项目,并成为Hadoop
分布式
系统的基础组件。
Zookeeper
提供了一组简单的原语集,
分布式
应用程序可以基于这些原语实现同步服务、配置维护和命名服务等。Zoo...
[详细]
赞
踩
article
SpringCloud
(Nacos)-整合
docker
+
zookeeper
+
kafka
+
canal
(单机)-宝塔linux_nacos
canal
SpringCloud
(Nacos)-整合
docker
+
zookeeper
+
kafka
+
canal
(单机)-宝塔linux①拉取镜像
docker
pull
canal
/
canal
-server:v1.1.4
docker
pull
zookeeper
...
[详细]
赞
踩
相关标签
zookeeper
linux
分布式
运维
服务器
云原生
java
java-zookeeper