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
投稿
猜你喜欢
- 上周,微软正式宣布了移动平台新品牌Windows Phone。从Windows Mobile 6.5系统开始,用该品牌取代之前的Window
- 服务器群集功能最早是为 Microsoft Windows NT® Server 4.0 操作系统设计的,这一功能在 Mic
- 论坛的外链建设也是要讲究技巧的。论坛的外链来源:1、签名 ;2、软文关于签名的注意事项:首先要防止账号被禁言或删除(这里我们需要注意的是,评
- 3月17日消息 17日上午,国内天使投资第一人薛蛮子在“创新中国2011”活动上分享自己的创业经验,称创业者要花费90%的时间来挑选适合进入
- SessionState 的Timeout),其主要原因有三种一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定
- 由于企业希望改进IT基础架构节省成本,所以CIO和数据中心管理人员都转向了通过合并服务器的方法以实现节省费用。其实,这么做并非易事。由于企业
- Google这个搜索巨人很少暴露其数据中心,但在上周,Google研究员Jeff Dean在Google I/O会议上揭秘了它的部分运行情况
- Apache需要设定成虚拟网站空间方式。新版SuSE的Apache已经改成模组化。所以只要修改几个档案就可以在建立帐号时,网站就对应的到位置
- 现在网络上的术语太多了,不记一下还真容易犯糊涂。雅虎统计中有个“UV”这个简写名称,一开始还真没弄明白什么意思,后来查了一下,原来就是独立访
- 谷歌创始人谢尔盖·布林和拉里·佩奇据国外媒体报道,谷歌连续多年蝉联最佳雇主,成为年轻专业人士最向往的地方,谷歌也已经成为搜索的代名词,那么谷
- SEO 就是搜索引擎优化,目的是使你的 Blog 在搜索引擎的搜索结果中的排名得到提高,从而让搜索引擎给你的 Blog 带来更多流量。1.制
- 一般来说,普通的资讯站,或者文字内容多些的网站,优化起来都比较容易,因为这类文章相对来说对搜索比较友好,从搜索角度看,比较有内容。但目前仍然
- 每一个“网络草根”,至少有10种方法,分别可以达到月赚3000。是的,月赚3000并没有什么,我现在也基本用不着这些方法,但对于某些有志之士
- 本文针对使用杰奇程序做书站的新人,高手可以略过了。很多朋友都说杰奇自带的论坛不好看,功能设置也很少,想用其它类型的论坛比如DISCUZ这种类
- 架设一台FTP服务器其实很简单。首先,要保证你的机器能上网,而且有不低于ADSL 512Kbps的网络速度。其次,硬件性能要能满足你的需要。
- 感恩节是这两天的热点,《商业大亨》也为广大老板们准备了丰富的五大感恩节活动,让老板们玩的舒心。同时,为了让自由城内有更祥和的气氛,《商业大亨
- CNET科技资讯网 3月3日 北京报道(文/张丹):雅虎全球与微软的联姻获批,使得搜索市场谷歌一家独大的不利市场局面获得转机。然而雅虎这家拥
- 今天来介绍下如何在Godaddy子域名及别名域名上设置404页面,不过本文只与Linux托管计划有关。子域名上的404错误 你需要为每个指向
- 本文为初学者介绍wine的使用。 下载wine 最新的wine(推荐下载) http://www.linux-easy.com/daily/
- 校园网站的发展。是很多学校近年来关注的焦点,可以说是前景很多,很多学校都想建立自己学校的网站。校园网站的建设应明确以下几个问题:1、建立完善