1. 首页
  2. 技术知识

docker搭建Zookeeper集群的方法步骤

目录

    0.前言1.前提2.开始搭建

      解释创建zoo.cfg

    3.docker搭建

      1.docker创建网络2.启动第1个zk节点3.启动第2个zk节点4.启动第3个zk节点

    4.访问节点

      1.进入zk第一个节点的docker容器内部2.使用zk的客户端进行访问3.在zk中使用命令

0.前言

之前在学springcloud的时候,提到有些项目还是使用zookeeper作为注册中心。

因此决定掌握这个技能,但是本地为了测试而部署一套zookeeper集群还是比较麻烦的。

所以打算使用docker在本地上搭建zookeeper集群

1.前提

    电脑里安装过docker

    了解部分docker命令


2.开始搭建

准备好一个空目录,需要建3个文件夹,然后每个文件夹里面建2个文件,如下所示:

  1. .
  2. ├── zk1 (文件夹)
  3. │   ├── myid (文件)
  4. │   └── zoo.cfg (文件)
  5. ├── zk2(文件夹)
  6. │   ├── myid(文件)
  7. │   └── zoo.cfg(文件)
  8. └── zk3(文件夹)
  9.     ├── myid(文件)
  10.     └── zoo.cfg(文件)

复制代码
解释

文件 文件里面内容
zk1/myid Zookeeper第一个节点的id配置,只需要一个数字 100
zk1/zoo.cfg Zookeeper第一个节点的配置信息 之后有个例子
zk2/myid Zookeeper第二个节点的id配置,只需要一个数字 200
zk2/zoo.cfg Zookeeper第二个节点的配置信息 之后有个例子
zk3/myid Zookeeper第三个节点的id配置,只需要一个数字 300
zk3/zoo.cfg Zookeeper第三个节点的配置信息 之后有个例子


创建zoo.cfg

3个zoo.cfg里面内容是一样的,如下所示

  1. tickTime=2000
  2. initLimit=10
  3. syncLimit=5
  4. dataDir=/zkData
  5. clientPort=2181
  6. server.100=127.0.0.1:2888:3888
  7. server.200=127.0.0.1:2888:3888
  8. server.300=127.0.0.1:2888:3888

复制代码 比较奇怪的是最后3行,这3行也是这个集群能否创建的关键

  1. server.100=127.0.0.1:2888:3888
  2. server.200=127.0.0.1:2888:3888
  3. server.300=127.0.0.1:2888:3888

复制代码 他们都形如

  1. server.A=B:C:D

复制代码 具体含义如下

参数 含义
server 常量,这个不用改
A 就是myid,在【开始搭建】的【解释】里提到过的数字
B 服务器地址,因为都是本地环境搭建的,就是127.0.0.1
C 信息交互端口,不用改,就2888挺好
D 选举端口,不用改,就3888挺好


3.docker搭建

当3个文件夹,6个目录创建好了以后,就可以使用命令进行搭建了

1.docker创建网络

创建docker网络,是为了保证3个容器可以互相通信

命令如下:其中network-zk-nb是自己取的,后面创建容器时会用到

  1. docker network create network-zk-nb

复制代码
2.启动第1个zk节点

如果是linux或mac

  1. docker run -d –name  zk1 \
  2. –restart always  \
  3. -e JVMFLAGS=”-Xmx1024m” \
  4. -v /Users/admin/env/zk/zk1/zoo.cfg:/conf/zoo.cfg \
  5. -v /Users/admin/env/zk/zk1/myid:/data/myid \
  6. –network network-zk-nb –network-alias zk1 \
  7. -p 2181:2181   zookeeper:3.5.7

复制代码 如果是windows,那么就改为

  1. docker run -d –name  zk1 ^
  2. –restart always  ^
  3. -e JVMFLAGS=”-Xmx1024m” ^
  4. -v ./zk1/zoo.cfg:/conf/zoo.cfg ^
  5. -v ./zk1/zoo.cfg:/data/myid ^
  6. –network network-zk-nb –network-alias zk1 ^
  7. -p 2181:2181   zookeeper:3.5.7

复制代码
PS:因为里面用到了./,也就是相对目录,所以你必须要在3个目录所在的目录下才能使用这条命令

3.启动第2个zk节点

  1. docker run -d –name  zk2 \
  2. –restart always  \
  3. -e JVMFLAGS=”-Xmx1024m” \
  4. -v /Users/admin/env/zk/zk2/zoo.cfg:/conf/zoo.cfg \
  5. -v /Users/admin/env/zk/zk2/myid:/data/myid \
  6. –network network-zk-nb –network-alias zk2 \
  7. -p 2182:2181   zookeeper:3.5.7

复制代码
4.启动第3个zk节点

  1. docker run -d –name  zk3 \
  2. –restart always  \
  3. -e JVMFLAGS=”-Xmx1024m” \
  4. -v /Users/admin/env/zk/zk3/zoo.cfg:/conf/zoo.cfg \
  5. -v /Users/admin/env/zk/zk3/myid:/data/myid \
  6. –network network-zk-nb –network-alias zk3 \
  7. -p 2183:2181   zookeeper:3.5.7

复制代码
至此zookeeper的集群环境搭建完毕

4.访问节点


1.进入zk第一个节点的docker容器内部

  1. docker exec -it zk1 /bin/bash

复制代码 查看容器目录

  1. ls -l

复制代码

  1. -rw-r–r– 1 zookeeper zookeeper 11358 Sep 13  2022 LICENSE.txt
  2. -rw-r–r– 1 zookeeper zookeeper   432 Feb 10  2022 NOTICE.txt
  3. -rw-r–r– 1 zookeeper zookeeper  1560 Feb  7  2022 README.md
  4. -rw-r–r– 1 zookeeper zookeeper  1347 Feb  7  2022 README_packaging.txt
  5. drwxr-xr-x 2 zookeeper zookeeper  4096 Feb 10  2022 bin
  6. drwxr-xr-x 2 zookeeper zookeeper  4096 May 16  2022 conf
  7. drwxr-xr-x 5 zookeeper zookeeper  4096 Feb 10  2022 docs
  8. drwxr-xr-x 2 zookeeper zookeeper  4096 May 16  2022 lib

复制代码 进入bin目录

  1. cd bin

复制代码 查看bin目录

  1. ls -l

复制代码

  1. total 56
  2. -rwxr-xr-x 1 zookeeper zookeeper  232 May  4  2022 README.txt
  3. -rwxr-xr-x 1 zookeeper zookeeper 2067 Feb  7  2022 zkCleanup.sh
  4. -rwxr-xr-x 1 zookeeper zookeeper 1158 Feb 10  2022 zkCli.cmd
  5. -rwxr-xr-x 1 zookeeper zookeeper 1621 Feb  7  2022 zkCli.sh
  6. -rwxr-xr-x 1 zookeeper zookeeper 1766 Feb  7  2022 zkEnv.cmd
  7. -rwxr-xr-x 1 zookeeper zookeeper 3690 Jan 31  2022 zkEnv.sh
  8. -rwxr-xr-x 1 zookeeper zookeeper 4573 Feb  7  2022 zkServer-initialize.sh
  9. -rwxr-xr-x 1 zookeeper zookeeper 1286 Jan 31  2022 zkServer.cmd
  10. -rwxr-xr-x 1 zookeeper zookeeper 9386 Feb  7  2022 zkServer.sh
  11. -rwxr-xr-x 1 zookeeper zookeeper  996 Oct  3  2022 zkTxnLogToolkit.cmd
  12. -rwxr-xr-x 1 zookeeper zookeeper 1385 Feb  7  2022 zkTxnLogToolkit.sh

复制代码
2.使用zk的客户端进行访问

  1. zkCli.sh

复制代码

  1. WatchedEvent state:SyncConnected type:None path:null
  2. [zk: localhost:2181(CONNECTED) 0]

复制代码
3.在zk中使用命令

  1. ls /

复制代码 至此,zk集群的搭建与使用就已经完成,后面学习的就是使用java的方式来连接

到此这篇关于docker搭建Zookeeper集群的方法步骤的文章就介绍到这了,更多相关docker搭建Zookeeper集群内容请搜索软件技术网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件技术网!

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/108953.html

联系我们