文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

docker搭建Zookeeper集群的方法步骤

2024-04-02 19:55

关注

0.前言

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

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

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

1.前提

2.开始搭建

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

.
├── zk1 (文件夹)
│   ├── myid (文件)
│   └── zoo.cfg (文件)
├── zk2(文件夹)
│   ├── myid(文件)
│   └── zoo.cfg(文件)
└── zk3(文件夹)
    ├── myid(文件)
    └── zoo.cfg(文件)

解释

文件 文件里面内容
zk1/myidZookeeper第一个节点的id配置,只需要一个数字100
zk1/zoo.cfgZookeeper第一个节点的配置信息之后有个例子
zk2/myidZookeeper第二个节点的id配置,只需要一个数字200
zk2/zoo.cfgZookeeper第二个节点的配置信息之后有个例子
zk3/myidZookeeper第三个节点的id配置,只需要一个数字300
zk3/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.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  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的方式来连接

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯