zoo.cfg配置详解
#ZK中的时间配置最小但域,其他时间配置以整数倍tickTime计算 tickTime=2000 #Leader允许Follower启动时在initLimit时间内完成数据同步,单位:tickTime initLimit=10 #Leader发送心跳包给集群中所有Follower,若Follower在syncLimit时间内没有响应,那么Leader就认为该follower已经挂掉了,单位:tickTime syncLimit=5 #配置ZK的数据目录 dataDir=/usr/local/zookeeper/data #用于接收客户端请求的端口号 clientPort=2181 #配置ZK的日志目录 dataLogDir=/usr/local/zookeeper/logs #ZK集群节点配置,端口号2888用于集群节点之间数据通信,端口号3888用于集群中Leader选举 server.1=192.168.123.100:2888:3888 server.2=192.168.123.101:2888:3888 server.3=192.168.123.102:2888:3888
Docker Compose来快速搭建Zookeeper集群
配置文件介绍
之前手动去搭建zookeeper集群的需要对两个配置文件进行配置如下:
1、配置myid文件,表示唯一的服务标号。
100
2、配置zoo.cfg的配置信息,示例如下:
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/zkData clientPort=2181 server.100=127.0.0.1:2181:3888 server.200=127.0.0.1:2182:3888 server.300=127.0.0.1:2183:3888
在docker compse中我们可以直接在配置文件中指定即可。
详细步骤
dockerhub-zookeeper:参考官方的docker-compose配置文件
1、拉取镜像:
docker pull zookeeper:3.8.0
2、创建docker compose文件:docker-compose-zookeepers.yml
version: '3.1' networks: zk-net: name: zk-net # 网络名 services: zoo1: image: zookeeper:3.8.0 container_name: zoo1 # 容器名称 restart: always # 开机自启 hostname: zoo1 # 主机名 ports: - 2181:2181 # 端口号 environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 networks: - zk-net zoo2: image: zookeeper:3.8.0 container_name: zoo2 restart: always hostname: zoo2 ports: - 2182:2181 environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 networks: - zk-net zoo3: image: zookeeper:3.8.0 container_name: zoo3 restart: always hostname: zoo3 ports: - 2183:2181 environment: ZOO_MY_ID: 3 ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 networks: - zk-net
3、运行服务
在对应的dockerfiles文件目录下运行命令:
# -f表示指定某个配置文件名 -d:表示后台启动 docker-compose -f docker-compose-zookeepers.yml up -d
我们分别进入到zoo1、zoo2、zoo3中去查看当前它们各自的状态:
docker exec -it zoo2 /bin/bash # 进入容器 cd bin # 进入bin目录 ./zkServer.sh status # 查看当前服务状态
zoo1状态为follower:
zoo2状态为follower:
zoo3状态为leader: