news 2026/6/9 1:40:35

zookeeper基础概念及集群部署

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
zookeeper基础概念及集群部署

目录

前言:

一.Zookeeper 概述

二.Zookeeper 工作机制

三.Zookeeper 特点

四.Zookeeper 数据结构

五.Zookeeper 应用场景

六.zookeeper选举机制

1.第一次启动选举机制

2.非第一次启动选举机制

七.部署 Zookeeper 集群

1.部署环境ZK

2.安装前准备

3.安装 Zookeeper

总结

前言:

上次和读者们分享了关于redis的三种服务架构,今天主要是对zookeeper的基础概念和集群部署过程做一个详细的讲解。

一.Zookeeper概述

Zookeeper是一个分布式协调服务,专门为分布式应用提供高效可靠的协调、同步、配置管理和
故障恢复等功能。它的设计目的是简化分布式系统的管理,保证多个节点之间的数据一致性和协调工作。Zookeeper提供了类似文件系统的层次化命名空间,用来存储和管理元数据,确保分布式应用的高可用性和强一致性。

二.Zookeeper工作机制

Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存
储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。也就是说Zookeeper =文件系统+通知机制

三.Zookeeper特点

1Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
2Zookeepe集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。
3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
4)更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行,即先进先出。
5)数据更新原子性,一次数据更新要么成功,要么失败。
6)实时性,在一定时间范围内,Client能读到最新数据。

四.Zookeeper数据结构

Zookeeper的数据结构类似于一个层次化的文件系统:
ZNode:是Zookeeper中存储数据的基本单元,每个ZNode都可以存储少量的数据,并且可以
有子节点,形成树状结构。/
持久节点:该类型的ZNode会一直存在,直到手动删除。
临时节点:客户端会话断开时,临时节点会自动删除,适用于实现分布式锁等功能。
顺序节点:在创建ZNode时,Zookeeper可以自动为其添加递增的编号,常用于实现分布式队列
或顺序任务处理。
ZooKeeper数据模型的结构与Linux文件系统很类似,整体上可以看作是一棵树,每个节点称做一
ZNode。每一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。

五.Zookeeper应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等
统一命名服务
在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。例如:IP不容易记住,而域名容易记住。
统一配置管理
1)分布式环境下,配置文件同步非常常见。一般要求一个集群中,所有节点的配置信息是一致
的,比如Kafka集群。对配置文件修改后,希望能够快速同步到各个节点上。
2)配置管理可交由ZooKeeper实现。可将配置信息写入ZooKeeper上的一个Znode。各个客户
端服务器监听这个Znode。一旦Znode中的数据被修改,ZooKeeper将通知各个客户端服务器。
统一集群管理
1)分布式环境中,实时掌握每个节点的状态是必要的。可根据节点实时状态做出一些调整。
2ZooKeeper可以实现实时监控节点状态变化。可将节点信息写入ZooKeeper上的一个
ZNode。监听这个ZNode可获取它的实时状态变化。
服务器动态上下线
客户端能实时洞察到服务器上下线的变化。
软负载均衡
Zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。

六.zookeeper选举机制

1.第一次启动选举机制

Zookeeper的选举机制确保集群中的所有节点对外表现为一个统一的服务。选举机制分为两个阶段:
Leader选举投票确认
1.服务器1启动,发起一次选举。服务器1投自己一票。此时服务器1票数一票,不够半数以上(3
票),选举无法完成,服务器1状态保持为LOOKING
2.服务器2启动,再发起一次选举。服务器12分别投自己一票并交换选票信息:此时服务器1发现服务器2myid比自己目前投票推举的(服务器1)大,更改选票为推举服务器2。此时服务器1票数0票,服务器2票数2票,没有半数以上结果,选举无法完成,服务器12状态保持LOOKING
3.服务器3启动,发起一次选举。此时服务器12都会更改选票为服务器3。此次投票结果:服务器1为0票,服务器20票,服务器33票。此时服务器3的票数已经超过半数,服务器3当选Leader。服务器12更改状态为FOLLOWING,服务器3更改状态为LEADING
4.服务器4启动,发起一次选举。此时服务器123已经不是LOOKING状态,不会更改选票信息。交换选票信息结果:服务器33票,服务器41票。此时服务器4服从多数,更改选票信息为服务器3,并更改状态FOLLOWING
5.服务器5启动,同4一样当小弟。

2.非第一次启动选举机制

1.ZooKeeper集群中的一台服务器出现以下两种情况之一时,就会开始进入Leader选举:
1)服务器初始化启动。
2)服务器运行期间无法和Leader保持连接。
2.而当一台机器进入Leader选举流程时,当前集群也可能会处于以下两种状态
1集群中本来就已经存在一个Leader
对于已经存在Leader的情况,机器试图去选举Leader时,会被告知当前服务器的Leader信息,对
于该机器来说,仅仅需要和Leader机器建立连接,并进行状态同步即可。
2集群中确实不存在Leader
假设ZooKeeper5台服务器组成,SID分别为12345ZXID分别为88877,并
且此时SID3的服务器是Leader。某一时刻,35服务器出现故障,因此开始进行Leader选举。
选举Leader规则:
EPOCH大的直接胜出任期
EPOCH相同,事务id大的胜出
事务id相同,服务器id大的胜出

七.部署Zookeeper集群

1.部署环境ZK

2.安装前准备

3.安装Zookeeper

总结:

今天主要是给读者们讲解了关于zookeeper的基础概念以及集群部署的相关实验操作,希望对读者们有所帮助!
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 12:13:42

DSP 28377 锁相环代码

dsp 28377 锁相环代码半夜调试电机控制板的时候,最怕遇到时钟信号飘得亲妈都不认识。DSP 28377这货的锁相环配置说难不难,但手册里那些寄存器名字看得人眼晕。今天咱们直接扒开TI官方例程的裤衩,看看PLL到底怎么驯服。先甩个祖传配置函数镇楼…

作者头像 李华
网站建设 2026/6/8 1:59:07

【上海理工大学】VC试题集合[2025-12-08]

【上海理工大学】VC试题集合[2025-12-08] 规则 时间:12月1日1月5日,1月5日(周一上午第35节)上交程序,提交的方式可以发送邮件(ghanmingvip.sina),注明成员名称及学号。提供报告&am…

作者头像 李华
网站建设 2026/6/8 14:24:44

普源DM3068万用表 vs 是德34461A万用表如何选择?

在电子测量领域,普源DM3068万用表和是德34461A万用表都是备受关注的高性能数字万用表。两者均具备高精度与多功能性,但细节差异决定了它们在不同场景下的适用性。以下从核心参数、功能特点、应用场景等方面对比两款产品,帮助你做出选择。一、…

作者头像 李华
网站建设 2026/6/9 18:37:57

震惊!这5款口碑爆棚的二极管,你竟然还没买?

震惊!这5款口碑爆棚的二极管,你竟然还没买?在电子元器件领域,二极管作为基础却关键的组件,其性能直接影响整个电路的稳定与效率。随着技术的不断进步,市场对二极管的要求也日益提高——不仅要满足基本的整流…

作者头像 李华
网站建设 2026/6/8 14:32:21

DeepSeek v3.2 正式发布,对标 GPT-5

DeepSeek 前几天发布了 V3.2 的正式版公告。标准版的DeepSeek - V3.2适用于日常场景,而DeepSeek - V3.2 - Speciale 则具备较强的指令跟随、数学证明和逻辑验证能力。 双版本发布,日常场景 VS 专业场景 DeepSeek 这次推出了两个定位不同的版本。 DeepSe…

作者头像 李华
网站建设 2026/6/8 10:05:49

编程代码抽象技术图片素材推荐:从逻辑骨架到视觉表达的探索

《美文美图每日一推》 今天推荐的是关于编程代码抽象技术的图片素材,共有5张内容,如果有宝子们想要商用记得需要获摄图网版权授权©后呦!!!🏢, 当然你也可以在平台检索当前主题:#线条骨架# #算法流程抽象# #架构逻辑抽象# #语…

作者头像 李华