docker-compose快速搭建Zookeeper集群

举报
长路 发表于 2022/11/28 20:21:30 2022/11/28
【摘要】 之前手动去搭建zookeeper集群的需要对两个配置文件进行配置如下:1、配置myid文件,表示唯一的服务标号。100在docker compse中我们可以直接在配置文件中指定即可。

@[toc]

前言

所有博客文件目录索引:博客目录索引(持续更新)

若是对于docker-compose不太熟悉的可看这篇文章:Docker Compose快速入门及实战

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

image-20220824162512461

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 

image-20220824155522547

我们分别进入到zoo1、zoo2、zoo3中去查看当前它们各自的状态:

 docker exec -it zoo2 /bin/bash  # 进入容器
 
 cd bin  # 进入bin目录
 
 ./zkServer.sh status  # 查看当前服务状态

zoo1状态为follower:

image-20220824162133555

zoo2状态为follower:

image-20220824162009535

zoo3状态为leader:

image-20220824162223263


参考文章

[1]. zoo.cfg配置详解

[2]. ZooKeeper安装教程

[3]. docker-compose快速构建zookeeper集群

[3]. docker-compose快速构建zookeeper集群

[4]. [docker] docker-compose安装zookeeper集群

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。