docker搭建Zookeeper集群的方法步骤
作者:其乐无穷5423 发布时间:2023-02-14 17:04:11
标签:docker,Zookeeper,集群
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 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://juejin.cn/post/7101328772770562056
0
投稿
猜你喜欢
- 为了方便广大网友从ftp站点查找资料,我们特意向您介绍这份国内大学ftp服务器站点列表,希望对你有用。成都信息工程学院ftp://xsc.c
- 一、什么是权重网站在seo中的重要性,权威性。SEO给一个网站的一种待遇。英文:Page Strrngth1. 权重不等于排名2. 权重对排
- 前几天帮人实现Discuz X2的子目录伪静态,以前没做过,就去查了下百度和Discuz论坛,发现好多人都在找这样的伪静态方法,可是都没真正
- 似乎正应了那句“你不理财,财不理你!”,从来没有指望google adsense能给我赚到钱,事实上它也没给我带来财富。 八月份的
- 以前在看无聊不眠的帖子”流量值几个钱?什么流量更值钱?“时,看到一句话感触挺深:“做网站干什么?搞流量啊!为什么要搞流量?投资啊!赚钱啊!”
- 在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息
- 要想学好SEO,那么我们就先从最基的搜索引擎语法学起,以下整理百度、雅虎、google三大搜索引擎的搜索高级语法及应用。百度搜索高级语法 1
- 昨日,有互联网资深人士在博客上透露,谷歌将会撤走在中国境内的所有服务器。这一消息在网上引发轩然 * ,因为如果撤走中国境内的所有服务器,基本上
- 在众多的网络应用中,FTP(FileTransferporotocol)有着非常重要的地位。在Internet中一个十分重要的资源就是软件资
- 启用网站的身份验证功能做好了上面的各项准备工作后,目标网站的SSL安全加密功能仍然还没有生效,此时我们还需要对该网站进行进一步的配置。按照前
- find 命令主要用于查找目录和文件,可以指定多种参数进行匹配。用法:find +查找路径 +命令参数
- 首先登录你的Godaddy 帐户,然后点击Godaddy 首页上方的Hosting 菜单,如下图所示: 然后选择下拉菜单里的Web site
- 前言上篇安装了 Hadoop ,这篇来安装 Hbase ,当然,如果只是简单做实验的话,其实还是比较简单的。前后大概只需要 十多分钟左右 就
- DNS服务器所提供的服务是完成将主机名和域名转换为IP地址的工作。为什么需要将主机名和域名转换为IP地址的工作呢?这是因为,当网络上的一台客
- 继帝国下载系统2.1版本全面免费后,现在2.5版全面开源,作为开源产品我们对代码质量、系统安全谨之又慎,代码检查经过非常严密的流程,希望到用
- 80后CEO陈博也许每一家知名的IT公司都会有不少像陈博这样的年轻人,他们从名牌大学毕业、成为技术高手、心怀梦想,厌倦了单纯的技术工作,希望
- 前言:我们知道,Docker 主要是基于 Namespace、cgroups 和联合文件系统这三大核心技术实现的。前面的课时我详细讲解了 N
- 一提到执行,就感到笔端很沉重,不知道从何说起。执行它本身不仅是一门丰富的学问,而且还是一整套非常具体的行为和艺术,于个人、于集体、于企业、于
- 有没有可能在5R2版OS/400操作系统中设置一个具有SSL功能的FTP服务器?答案是肯定的。iSeries FTP服务器既支持TLS(传输
- 经常在一此站长论坛里看到一些站长朋友提问:“为什么我的网站收录这么少?为什么我的收录慢慢减少“等等问题。今天就对这个问题说说自己的看法 其实