基于 docker-compose 搭建 zookeeper集群


前言

最近在学习Kafka,低版本需要将Zookeeper(ZK)作为协调者,特地补充下Zookeeper的知识,顺便基于docker compose搭建一个ZK集群。


一、环境准本

1、CentOS环境——CentOS7

查看Linux环境:cat /etc/os-release
在这里插入图片描述

2、docker环境——23.0.3

查看docker版本:docker -v
在这里插入图片描述

3、docker-compose环境——1.29.2

查看docker-compose版本:docker-compose -v
在这里插入图片描述

4、docker 镜像——latest

查看zookeeper版本:docker images
在这里插入图片描述

二、集群搭建

1、docker-compose.yml 文件

version: '1.0'

# 给zk集群配置一个网络,网络名为zk-net
networks:
  zk-net:
    name: zk-net

# 配置zk节点
# services下的每一个子配置都对应一个zk节点的docker容器
services:
  zk1:
    # docker container所使用的docker image
    image: zookeeper
    hostname: zk1
    container_name: zk1
    # 配置docker container和宿主机的端口映射
    ports:
      - 2181:2181
      - 8081:8080
    # 配置docker container的环境变量
    environment:
      # 当前zk实例的id
      ZOO_MY_ID: 1
      # 整个zk集群的机器、端口列表
      ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=zk3:2888:3888;2181
    # 将docker container上的路径挂载到宿主机上 实现宿主机和docker container的数据共享
    volumes:
      - ./zookeeper/cluster/zk1/data:/data
      - ./zookeeper/cluster/zk1/datalog:/datalog
    # 当前docker container加入名为zk-net的隔离网络
    networks:
      - zk-net

  zk2:
    image: zookeeper
    hostname: zk2
    container_name: zk2
    ports:
      - 2182:2181
      - 8082:8080
    environment:
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zk3:2888:3888;2181
    volumes:
      - ./zookeeper/cluster/zk2/data:/data
      - ./zookeeper/cluster/zk2/datalog:/datalog
    networks:
      - zk-net

  zk3:
    image: zookeeper
    hostname: zk3
    container_name: zk3
    ports:
      - 2183:2181
      - 8083:8080
    environment:
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=zk1:2888:3888;2181 server.2=zk2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
    volumes:
      - ./zookeeper/cluster/zk3/data:/data
      - ./zookeeper/cluster/zk3/datalog:/datalog
    networks:
      - zk-net

2、执行docker-compose

执行docker-compose:docker-compose up -d
在这里插入图片描述

3、查看运行容器是否正在运行

查看运行容器是否正在运行:docker ps
在这里插入图片描述
Up:已运行时间 代表执行成功

三、查看集群状态

由于在配置文件中, 我将容器内部8080端口分别映射到了宿主机上的8081、8082、8083端口,所以我们可以在宿主机(Windows环境)上通过浏览器访问这三个ZK节点实例内嵌的可视化界面:
http://192.168.1.4:8081/commands
http://192.168.1.4:8082/commands
http://192.168.1.4:8083/commands
在这里插入图片描述

1、configuration

在configuration目录下我们可以看到zk实例的基本配置信息,比如server_id、提供客户端服务的端口、数据目录、日志目录等。
在这里插入图片描述

2、stats

在stats目录下可以看到zk实例的运行状态信息,比如节点身份、数据大小、日志大小等,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过查看三个zk节点实例的stats信息,可以看到zk3是整个集群的leader角色,zk1、zk2都是zk3的follower角色


总结

以上就是Zookeeper的集群搭建使用,具体的Zookeeper学习笔记总结完毕会发出来,绝对比细狗还要细!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Docker Compose搭建Zookeeper集群,可以按照以下步骤进行操作: 1. 创建一个Docker Compose文件,例如`docker-compose.yml`,内容如下: ``` version: '3' services: zookeeper1: image: zookeeper:3.6.3 container_name: zookeeper1 restart: always environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=zookeeper1:2888:3888 server.2=zookeeper2:2888:3888 server.3=zookeeper3:2888:3888 ports: - "2181:2181" - "2888:2888" - "3888:3888" volumes: - ./data/zookeeper1:/data - ./logs/zookeeper1:/datalog zookeeper2: image: zookeeper:3.6.3 container_name: zookeeper2 restart: always environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=zookeeper1:2888:3888 server.2=zookeeper2:2888:3888 server.3=zookeeper3:2888:3888 ports: - "2182:2181" - "2889:2888" - "3889:3888" volumes: - ./data/zookeeper2:/data - ./logs/zookeeper2:/datalog zookeeper3: image: zookeeper:3.6.3 container_name: zookeeper3 restart: always environment: ZOO_MY_ID: 3 ZOO_SERVERS: server.1=zookeeper1:2888:3888 server.2=zookeeper2:2888:3888 server.3=zookeeper3:2888:3888 ports: - "2183:2181" - "2890:2888" - "3890:3888" volumes: - ./data/zookeeper3:/data - ./logs/zookeeper3:/datalog ``` 这里定义了三个Zookeeper节点,分别是`zookeeper1`、`zookeeper2`和`zookeeper3`,使用的镜像是官方的`zookeeper:3.6.3`,并分别映射了Zookeeper的端口和数据卷。 2. 创建数据卷目录,例如`./data/zookeeper1`、`./data/zookeeper2`和`./data/zookeeper3`,用于存储Zookeeper的数据。 3. 创建日志目录,例如`./logs/zookeeper1`、`./logs/zookeeper2`和`./logs/zookeeper3`,用于存储Zookeeper的日志。 4. 执行`docker-compose up -d`命令启动Zookeeper集群。 5. 可以通过`docker-compose ps`命令查看Zookeeper节点的状态。 至此,Zookeeper集群搭建完成了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值