Zookeeper集群部署协调服务

为什么要用 Zookeeper 集群部署协调服务?

在分布式系统里,多个服务之间需要协调行为,比如配置文件同步、服务发现、选主等。Zookeeper 就是专门干这个事的协调服务,而集群模式能保证单点故障下依然稳定运行。
下面我会带着你从零开始在 3 台 Linux 服务器上部署一个可用的 Zookeeper 集群。

搭建前的环境和配置清单

  • 三台服务器(虚拟机或云主机均可),IP 假设为:192.168.1.10192.168.1.11192.168.1.12
  • Java 8 或 11:Zookeeper 依赖 JVM,检查方式 java -version
  • 放行端口:Zookeeper 默认使用 2181(客户端连接),2888(集群内部通讯),3888(选举通讯)。请在防火墙或安全组中打开这三个端口。

三步完成 Zookeeper 集群部署

1. 下载并解压

三台服务器都执行以下命令(以 /opt 目录为例):

cd /opt
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin zookeeper

2. 修改配置文件

每台机器上都要编辑 conf/zoo.cfg(先复制模板):

cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg

用 vim 打开 conf/zoo.cfg,修改或添加以下内容(重点关注最后的 server 配置):

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
server.1=192.168.1.10:2888:3888
server.2=192.168.1.11:2888:3888
server.3=192.168.1.12:2888:3888
注意dataDir 目录需要自己创建:mkdir -p /opt/zookeeper/data

3. 创建 myid 文件

在每台服务器的 dataDir 目录下创建 myid 文件,里面只写一个数字(对应上面 server 后面的序号):

  • 192.168.1.10 上执行:
  echo "1" > /opt/zookeeper/data/myid
  • 192.168.1.11 上执行:
  echo "2" > /opt/zookeeper/data/myid
  • 192.168.1.12 上执行:
  echo "3" > /opt/zookeeper/data/myid

4. 启动集群

按顺序启动:先在三台机器上分别启动 Zookeeper:

/opt/zookeeper/bin/zkServer.sh start

启动后查看状态:

/opt/zookeeper/bin/zkServer.sh status

正常会看到其中一台是 Mode: leader,另外两台是 Mode: follower

避坑指南:最容易翻车的几个点

  • 端口没放行:如果无法选举或节点之间连不上,先检查 218128883888 是否在防火墙开放。临时关闭防火墙测试:systemctl stop firewalld(仅测试)。
  • myid 数字冲突:每个节点的 myid 必须不同,且对应 zoo.cfg 里的 server.X。
  • JAVA_HOME 未设置:执行 zkServer.sh 报错时,运行 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk 或写入 /etc/profile
  • dataDir 权限:保证 dataDir 目录可写,否则启动报错。

如何验证 Zookeeper 集群协调服务已正常运行

  1. 客户端连接测试:任意一台机器上执行 zkCli.sh -server 192.168.1.10:2181,进入交互界面后输入 ls / 看到 [zookeeper] 说明连接成功。
  2. 选举稳定性:手动停掉 leader 节点(执行 zkServer.sh stop),剩下两台会重新选举,此时观察 status 应能快速选出新 leader。
  3. 写入与同步:在客户端创建一个临时节点,比如 create /testnode test,然后换一台客户端连接另一个 follower ,执行 get /testnode 应该能读到相同数据。

如果你正在处理 Zookeeper集群部署协调服务,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
部署完成后,你就能得到一个高可用的分布式协调基础单元,后续可以配合 Kafka、Dubbo 等中间件一起使用。

分享到:
上一篇
Harbor私有镜像仓库高可用搭建指南:零基础实现双节点容灾
下一篇
etcd分布式存储配置使用教程:从单机到集群完整步骤
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意