ZooKeeper集群部署指南
集群模式保证高可用,生产环境必须使用。
集群模式部署
集群规模要求:
| 规则 | 说明 |
|---|---|
| 最小节点数 | 3节点 |
| 奇数原则 | 推荐3、5、7节点 |
| 过半机制 | 过半节点存活即可服务 |
部署规划:
properties
节点1: server1:2181 (Leader或Follower)
节点2: server2:2181 (Leader或Follower)
节点3: server3:2181 (Leader或Follower)
配置文件示例:
Bash
# zoo.cfg(所有节点相同)
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=10
syncLimit=5
# 集群节点配置
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888
集群配置格式:
Bash
server.N=host:port1:port2
N: myid编号
host: 节点主机地址
port1: Leader-Follower通信端口
port2: Leader选举端口
创建myid文件:
Bash
# 每个节点创建对应编号的myid
# 节点1
echo "1" > /var/lib/zookeeper/myid
# 节点2
echo "2" > /var/lib/zookeeper/myid
# 节点3
echo "3" > /var/lib/zookeeper/myid
部署流程:
Bash
1. 各节点安装ZooKeeper
2. 配置相同的zoo.cfg
3. 各节点创建唯一myid
4. 依次启动各节点
5. 验证集群状态
注意:myid必须与server.N配置中的N对应。
启动与停止服务
启动集群:
Bash
# 各节点依次启动
# 节点1
zkServer.sh start
# 节点2
zkServer.sh start
# 节点3
zkServer.sh start
查看状态:
Bash
# 查看角色
zkServer.sh status
# 输出示例
Mode: leader <- Leader节点
Mode: follower <- Follower节点
四字命令检测:
text
# 查看详细状态
echo stat | nc server1 2181
# 输出关键信息
Mode: follower
Zxid: 0x100000005
Connections: 10
停止服务:
text
# 停止节点
zkServer.sh stop
# 重启节点
zkServer.sh restart
健康检查脚本:
text
#!/bin/bash
# 检查集群各节点状态
for host in server1 server2 server3; do
echo "Checking $host..."
echo stat | nc $host 2181 | grep Mode
done
常见问题:
| 问题 | 解决 |
|---|---|
| 启动失败 | 检查myid是否存在 |
| 无法选举Leader | 检查网络连通性 |
| 状态不一致 | 检查配置文件是否相同 |
提示:生产环境建议使用systemd或supervisor管理服务。
要点总结
- 集群至少3节点,推荐奇数节点
- server.N配置节点地址和端口
- myid文件标识节点身份,必须与配置对应
- zkServer.sh status查看Leader/Follower角色
- stat四字命令检测节点详细状态
- 生产环境用进程管理工具托管服务
📝 发现内容有误?点击此处直接编辑