docker搭建Zookeeper集群的方法步骤

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享

免费资源网 – https://freexyz.cn/
目录0.前言1.前提2.开始搭建解释创建zoo.cfg3.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/myidZookeeper第一个节点的id配置,只需要一个数字100zk1/zoo.cfgZookeeper第一个节点的配置信息之后有个例子zk2/myidZookeeper第二个节点的id配置,只需要一个数字200zk2/zoo.cfgZookeeper第二个节点的配置信息之后有个例子zk3/myidZookeeper第三个节点的id配置,只需要一个数字300zk3/zoo.cfgZookeeper第三个节点的配置信息之后有个例子

创建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.1C信息交互端口,不用改,就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 2018 LICENSE.txt -rw-r–r– 1 zookeeper zookeeper 432 Feb 10 2020 NOTICE.txt -rw-r–r– 1 zookeeper zookeeper 1560 Feb 7 2020 README.md -rw-r–r– 1 zookeeper zookeeper 1347 Feb 7 2020 README_packaging.txt drwxr-xr-x 2 zookeeper zookeeper 4096 Feb 10 2020 bin drwxr-xr-x 2 zookeeper zookeeper 4096 May 16 2020 conf drwxr-xr-x 5 zookeeper zookeeper 4096 Feb 10 2020 docs drwxr-xr-x 2 zookeeper zookeeper 4096 May 16 2020 lib

进入bin目录

cd bin

查看bin目录

ls -l total 56 -rwxr-xr-x 1 zookeeper zookeeper 232 May 4 2018 README.txt -rwxr-xr-x 1 zookeeper zookeeper 2067 Feb 7 2020 zkCleanup.sh -rwxr-xr-x 1 zookeeper zookeeper 1158 Feb 10 2020 zkCli.cmd -rwxr-xr-x 1 zookeeper zookeeper 1621 Feb 7 2020 zkCli.sh -rwxr-xr-x 1 zookeeper zookeeper 1766 Feb 7 2020 zkEnv.cmd -rwxr-xr-x 1 zookeeper zookeeper 3690 Jan 31 2020 zkEnv.sh -rwxr-xr-x 1 zookeeper zookeeper 4573 Feb 7 2020 zkServer-initialize.sh -rwxr-xr-x 1 zookeeper zookeeper 1286 Jan 31 2020 zkServer.cmd -rwxr-xr-x 1 zookeeper zookeeper 9386 Feb 7 2020 zkServer.sh -rwxr-xr-x 1 zookeeper zookeeper 996 Oct 3 2019 zkTxnLogToolkit.cmd -rwxr-xr-x 1 zookeeper zookeeper 1385 Feb 7 2020 zkTxnLogToolkit.sh

2.使用zk的客户端进行访问

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

3.在zk中使用命令

ls /

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

免费资源网 – https://freexyz.cn/


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容