您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Zookeeper中怎么搭建配置集群模式
## 一、Zookeeper集群概述
Zookeeper作为分布式协调服务,集群模式(通常称为**Ensemble**)是其高可用性的核心实现方式。一个典型的Zookeeper集群由**2n+1个节点**组成(n≥1),采用ZAB协议(Zookeeper Atomic Broadcast)保证数据一致性。集群中超过半数节点存活即可正常服务,例如3节点集群允许1个节点故障。
## 二、环境准备
### 1. 服务器要求
- 至少3台Linux服务器(生产环境建议物理隔离)
- 相同版本的JDK(推荐JDK8+)
- 网络互通且开放以下端口:
- 2181:客户端连接端口
- 2888:节点间数据同步端口
- 3888:选举通信端口
### 2. 软件准备
```bash
# 下载Zookeeper(示例版本3.7.1)
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz
mv apache-zookeeper-3.7.1-bin /opt/zookeeper
在每台服务器上创建数据和日志目录:
mkdir -p /data/zookeeper/{data,logs}
复制示例配置文件并修改zoo.cfg
:
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg
(关键参数):
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
# 集群节点配置(所有服务器相同)
server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888
在每个节点的dataDir
目录下创建myid
文件:
# 在节点1执行
echo "1" > /data/zookeeper/data/myid
# 在节点2执行
echo "2" > /data/zookeeper/data/myid
# 在节点3执行
echo "3" > /data/zookeeper/data/myid
在所有节点上执行:
/opt/zookeeper/bin/zkServer.sh start
查看各节点角色(Leader/Follower):
/opt/zookeeper/bin/zkServer.sh status
预期输出示例:
Mode: leader # 或 follower
连接任意节点测试:
/opt/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
参数 | 说明 | 推荐值 |
---|---|---|
tickTime | 基本时间单元(毫秒) | 2000 |
initLimit | 初始化连接最长心跳数 | 10 |
syncLimit | 心跳检测最大容忍次数 | 5 |
autopurge.snapRetainCount | 保留的快照数 | 3 |
autopurge.purgeInterval | 清理间隔(小时) | 1 |
echo mntr | nc 127.0.0.1 2181
echo stat | nc 127.0.0.1 2181
myid
文件与防火墙设置# 启用认证
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
zoo.cfg
启用动态配置:reconfigEnabled=true
standaloneEnabled=false
echo "server.4=192.168.1.104:2888:3888:participant;server.5=192.168.1.105:2888:3888:participant" | zkCli.sh reconfig -add
使用Docker Compose示例:
version: '3'
services:
zoo1:
image: zookeeper:3.7
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: "server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181"
# 修改bin/zkEnv.sh
export JVMFLAGS="-Xms4G -Xmx4G -XX:+UseG1GC"
snapCount=100000
snapshot.compression.method=CHECKED
通过以上步骤,即可完成Zookeeper集群的搭建。建议定期进行故障演练,验证集群的容错能力。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。