使用docker-compose方式部署zk集群
新建docker-compose.yml文件
version: '3'
services:
pyq-zk1:
image: zookeeper
container_name: pyq-zk1
privileged: true
restart: always
ports:
- 2181:2181
volumes:
- ./zk1/conf:/conf
- ./zk1/data:/data
pyq-zk2:
image: zookeeper
container_name: pyq-zk2
privileged: true
restart: always
ports:
- 2182:2181
volumes:
- ./zk2/conf/:/conf
- ./zk2/data/:/data
pyq-zk3:
image: zookeeper
container_name: pyq-zk3
privileged: true
restart: always
ports:
- 2183:2181
volumes:
- ./zk3/conf/:/conf
- ./zk3/data/:/data
pyq-zk4:
image: zookeeper
container_name: pyq-zk4
privileged: true
restart: always
ports:
- 2184:2181
volumes:
- ./zk4/conf/:/conf
- ./zk4/data/:/data
修改配置文件挂载到宿主机的配置文件./zk1/data/myid
表示当前ZK节点的编号,用来区分
这里是4个节点,分别在这4给节点的myid配置文件中只用配上不同的数字,保证不重即可。
./zk1/data/myid 内容配置为 1
./zk2/data/myid 内容配置为 2
./zk3/data/myid 内容配置为 3
./zk4/data/myid 内容配置为 4
修改配置文件挂载到宿主机的配置文件./zk1/conf/zoo.conf
dataDir=/data
dataLogDir=/datalog
tickTime=2000
#因为是docker部署默认桥接网络模式,端口号可以不用改
clientPort=2181
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
#server.节点的myid中的值=节点地址:配置该server和集群中的leader交换消息所使用的端口:配置选举leader时所使用的端口
server.1=pyq-zk1:2001:3001:participant
server.2=pyq-zk2:2002:3002:participant
server.3=pyq-zk3:2003:3003:participant
#这个后面加了:observer 表示是一个观察者节点
server.4=pyq-zk4:2004:3004:observer
其他3个节点的配置可以完全复制上面内容
最后 docker-compose up -d
启动