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个文件,如下所示:
- .
- ├── zk1 (文件夹)
- │ ├── myid (文件)
- │ └── zoo.cfg (文件)
- ├── zk2(文件夹)
- │ ├── myid(文件)
- │ └── zoo.cfg(文件)
- └── zk3(文件夹)
- ├── myid(文件)
- └── 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里面内容是一样的,如下所示
- tickTime=2000
- initLimit=10
- syncLimit=5
- dataDir=/zkData
- clientPort=2181
-
- server.100=127.0.0.1:2888:3888
- server.200=127.0.0.1:2888:3888
- server.300=127.0.0.1:2888:3888
复制代码 比较奇怪的是最后3行,这3行也是这个集群能否创建的关键
- server.100=127.0.0.1:2888:3888
- server.200=127.0.0.1:2888:3888
- server.300=127.0.0.1:2888:3888
复制代码 他们都形如
- 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是自己取的,后面创建容器时会用到
- docker network create network-zk-nb
复制代码
2.启动第1个zk节点
如果是linux或mac
- docker run -d –name zk1 \
- –restart always \
- -e JVMFLAGS=”-Xmx1024m” \
- -v /Users/admin/env/zk/zk1/zoo.cfg:/conf/zoo.cfg \
- -v /Users/admin/env/zk/zk1/myid:/data/myid \
- –network network-zk-nb –network-alias zk1 \
- -p 2181:2181 zookeeper:3.5.7
复制代码 如果是windows,那么就改为
- docker run -d –name zk1 ^
- –restart always ^
- -e JVMFLAGS=”-Xmx1024m” ^
- -v ./zk1/zoo.cfg:/conf/zoo.cfg ^
- -v ./zk1/zoo.cfg:/data/myid ^
- –network network-zk-nb –network-alias zk1 ^
- -p 2181:2181 zookeeper:3.5.7
复制代码
PS:因为里面用到了./,也就是相对目录,所以你必须要在3个目录所在的目录下才能使用这条命令
3.启动第2个zk节点
- docker run -d –name zk2 \
- –restart always \
- -e JVMFLAGS=”-Xmx1024m” \
- -v /Users/admin/env/zk/zk2/zoo.cfg:/conf/zoo.cfg \
- -v /Users/admin/env/zk/zk2/myid:/data/myid \
- –network network-zk-nb –network-alias zk2 \
- -p 2182:2181 zookeeper:3.5.7
复制代码
4.启动第3个zk节点
- docker run -d –name zk3 \
- –restart always \
- -e JVMFLAGS=”-Xmx1024m” \
- -v /Users/admin/env/zk/zk3/zoo.cfg:/conf/zoo.cfg \
- -v /Users/admin/env/zk/zk3/myid:/data/myid \
- –network network-zk-nb –network-alias zk3 \
- -p 2183:2181 zookeeper:3.5.7
复制代码
至此zookeeper的集群环境搭建完毕
4.访问节点
1.进入zk第一个节点的docker容器内部
- docker exec -it zk1 /bin/bash
复制代码 查看容器目录
- ls -l
复制代码
- -rw-r–r– 1 zookeeper zookeeper 11358 Sep 13 2022 LICENSE.txt
- -rw-r–r– 1 zookeeper zookeeper 432 Feb 10 2022 NOTICE.txt
- -rw-r–r– 1 zookeeper zookeeper 1560 Feb 7 2022 README.md
- -rw-r–r– 1 zookeeper zookeeper 1347 Feb 7 2022 README_packaging.txt
- drwxr-xr-x 2 zookeeper zookeeper 4096 Feb 10 2022 bin
- drwxr-xr-x 2 zookeeper zookeeper 4096 May 16 2022 conf
- drwxr-xr-x 5 zookeeper zookeeper 4096 Feb 10 2022 docs
- drwxr-xr-x 2 zookeeper zookeeper 4096 May 16 2022 lib
复制代码 进入bin目录
- cd bin
复制代码 查看bin目录
- ls -l
复制代码
- total 56
- -rwxr-xr-x 1 zookeeper zookeeper 232 May 4 2022 README.txt
- -rwxr-xr-x 1 zookeeper zookeeper 2067 Feb 7 2022 zkCleanup.sh
- -rwxr-xr-x 1 zookeeper zookeeper 1158 Feb 10 2022 zkCli.cmd
- -rwxr-xr-x 1 zookeeper zookeeper 1621 Feb 7 2022 zkCli.sh
- -rwxr-xr-x 1 zookeeper zookeeper 1766 Feb 7 2022 zkEnv.cmd
- -rwxr-xr-x 1 zookeeper zookeeper 3690 Jan 31 2022 zkEnv.sh
- -rwxr-xr-x 1 zookeeper zookeeper 4573 Feb 7 2022 zkServer-initialize.sh
- -rwxr-xr-x 1 zookeeper zookeeper 1286 Jan 31 2022 zkServer.cmd
- -rwxr-xr-x 1 zookeeper zookeeper 9386 Feb 7 2022 zkServer.sh
- -rwxr-xr-x 1 zookeeper zookeeper 996 Oct 3 2022 zkTxnLogToolkit.cmd
- -rwxr-xr-x 1 zookeeper zookeeper 1385 Feb 7 2022 zkTxnLogToolkit.sh
复制代码
2.使用zk的客户端进行访问
- zkCli.sh
复制代码
- WatchedEvent state:SyncConnected type:None path:null
- [zk: localhost:2181(CONNECTED) 0]
复制代码
3.在zk中使用命令
- ls /
复制代码 至此,zk集群的搭建与使用就已经完成,后面学习的就是使用java的方式来连接
到此这篇关于docker搭建Zookeeper集群的方法步骤的文章就介绍到这了,更多相关docker搭建Zookeeper集群内容请搜索软件技术网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件技术网!
原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/108953.html