千家信息网

Zookeeper 集群

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Zookeeper介绍ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和组服务。所有这些类型的服务都以分布式应用程序的形式使用。它具有可靠的、可扩展的、分布式的、可配置的协调
千家信息网最后更新 2026年11月01日Zookeeper 集群

Zookeeper介绍

ZooKeeper是一种集中式服务,用于维护配置信息,命名,提供分布式同步和组服务。所有这些类型的服务都以分布式应用程序的形式使用。它具有可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态 。

服务器规划

zookeeper集群中至少需要3台服务器,由于资源有限,我们就以3台服务器为例。

Zookeeper部署模式

Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。
单机模式:Zookeeper只运行在一台服务器上,适合测试环境;
伪集群模式:就是在一台物理机上运行多个 Zookeeper 实例;
集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个"集合体"(ensemble)。

Zookeeper配置文件

官方给出的配置文件模板为 zoo_sample.cfg ,我们在实际环境中使用时,需要将其改为 zoo.cfg 。在192.168.2.177上操作

[root@rocketmq-nameserver1 conf]# vim zoo.cfgtickTime=2000initLimit=10syncLimit=5dataDir=/wdata/zookeeperdataLogDir=/wdata/zookeeper/logsclientPort=2181#maxClientCnxns=60#autopurge.snapRetainCount=3#autopurge.purgeInterval=1server.1=192.168.2.177:2888:3888server.2=192.168.2.178:2888:3888server.3=192.168.2.180:2888:3888

配置文件说明:

server.X=A:B:C

其中 X 为服务器编号,A 为节点服务器的 IP 地址,B 为 Leader 通信端口,C 为 Zookeeper Leader选举端口

dataLogDir:zookeeper事务日志目录

dataDir:zookeeper数据存放目录

clientPort:客户端监听端口

syncLimit:集群中 flower 服务器(F)跟 leader(L)服务器之间的请求和答应最多能容忍的心跳数。

initLimit:集群中的 flower 服务器 (F) 与 leader 服务器 (L) 之间初始连接时能容忍的最多心跳数(tickTime的数量)。

tickTime:CS通信心跳时间,客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍。

Zookeeper集群

搭建Zookeeper集群前,我们需要修改系统的环境变量

分别在 192.168.2.177、192.168.2.178、192.168.2.180 上修改

[root@rocketmq-nameserver1 ~]# vim .bash_profileexport JAVA_HOME=/usr/local/jdk1.8.0_201export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

复制配置文件

我们将已配置好的配置文件分发到另外两台(178和180)服务器

for i in 178 180; do scp zoo.cfg root@192.168.2.$i ; done

我们再到三台服务器上添加服务器编号文件,文件中的内容为服务器编号,服务器的编号必须跟配置文件中的编号对应,否则集群无法启动。

[root@rocketmq-nameserver1 zookeeper]# vim myid

其他两台服务器的编号分别为2和3。

到这里,配置已经完成,接下来我们启动 zookeeper 服务。

分别在 3 台服务器上运行

[root@rocketmq-nameserver1 ~]# zkServer.sh start

查看 zookeeper 服务启动状态

[root@rocketmq-nameserver1 ~]# zkServer.sh status

到这里,zookeeper 集群搭建完成。

下面介绍zookeeper的常见命令

conf: 输出相关服务配置的详细信息。
cons: 列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息。包括"接受 / 发送"的包数量、会话 id 、操作延迟、最后的操作执行等等信息。
dump:列出未经处理的会话和临时节点。
envi: 输出关于服务环境的详细信息(区别于 conf 命令)。
reqs: 列出未经处理的请求
ruok: 测试服务是否处于正确状态。如果确实如此,那么服务返回"imok ",否则不做任何相应。
stat: 输出关于性能和连接的客户端的列表。
wchs:列出服务器 watch 的详细信息。
wchc:通过 session 列出服务器 watch 的详细信息,它的输出是一个与watch 相关的会话的列表。
wchp:通过路径列出服务器 watch 的详细信息。它输出一个与 session相关的路径。

zookeeper 命令行工具

通过 zkCli.sh 连接到 zookeeper 服务,如下

[root@rocketmq-nameserver2 ~]# zkCli.sh -server 192.168.2.178:2181

连接成功后会如下图所示:

在这里我们可以输入zookeeper命令进行相关操作。可以使用 help 进行帮助查询。下面是 zookeeper 命令行下的全部命令

stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port

具体命令的使用,可参阅官方文档,这里不做过多介绍。

服务 服务器 集群 配置 信息 文件 命令 模式 环境 输出 客户 状态 运行 之间 分布式 时间 端口 通信 单机 官方 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 江苏根荣互联网科技 北京互联网科技 互联网金融与金融科技 互联网科技股票 互联网科技素材视频竖屏 甘肃拓世互联网科技有限公司 四个字互联网科技公司取名 顺网科技2021年互联网排名 银川新华互联网科技学校地址 互联网还是高科技吗 湖北码尼互联网科技有限公司电话 电子商务与互联网科技的关系 厦门江牛科技互联网 35岁以上互联网科技行业 上海同邻互联网科技有限公司规模 互联网公司属于科技吗 唐山双旺合互联网科技产业园 好易买互联网科技 绵阳真晨互联网科技有限公司 广州紫鲸互联网科技有限公司 互联网科技工作委员会主任 美国互联网科技巨头监管 友谊互联网络科技 顺网科技2021年互联网排名 来此购互联网科技有限公司 互联网金融中的现代科技 广州千川互联网科技有限公司 宁波跨境商互联网科技有限公司 互联网的黑科技实验室
0