栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

使用Docker配置Zookeeper集群

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Docker配置Zookeeper集群

1.准备zookeeper镜像
docker pull jplock/zookeeper:3.4.8
2.自定义网络
docker network create zookeeper

自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能ping通),相比于默认使用的bridge网络(只能ping通ip)。

由于docker容器内部的ip是有可能会发生改变的,在配置zookeeper集群时,可以使用容器名代替ip,在增加或减少集群数量或者zookeeper宕机时不影响集群的使用以及修改原本的配置文件。

3.根据镜像创建三个容器
docker run -d --name zookeeper1 --network zookeeper jplock/zookeeper:3.4.8
docker run -d --name zookeeper2 --network zookeeper jplock/zookeeper:3.4.8
docker run -d --name zookeeper3 --network zookeeper jplock/zookeeper:3.4.8

参数说明:-d 后台运行容器并返回容器ID

                --name:容器名字

                --network:连接的网络

查看容器是否加入局域网

docker network inspect zookeeper

 4.确保容器直接能互相ping通 

进入容器实例

docker exec -it zookeeper2 /bin/bash

参数说明:exec -it :进入正在运行的容器并以命令行交互 

bash-4.3# ping zookeeper1
PING zookeeper1 (172.21.0.2): 56 data bytes
64 bytes from 172.21.0.2: seq=0 ttl=64 time=0.055 ms
64 bytes from 172.21.0.2: seq=1 ttl=64 time=0.187 ms
^C
--- zookeeper1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.055/0.121/0.187 ms

bash-4.3# ping zookeeper3
PING zookeeper3 (172.21.0.4): 56 data bytes
64 bytes from 172.21.0.4: seq=0 ttl=64 time=0.102 ms
64 bytes from 172.21.0.4: seq=1 ttl=64 time=0.091 ms
^C
5.修改zoo.cfg文件

①在/opt/zookeeper/这个目录下创建 zkData

mkdir zkdata

②修改conf下的zoo.cfg文件

vi zoo.cfg

修改 dataDir 路径:将tmp/zkData修改为/opt/zookeeper/zkdata

因为在linux里面tmp路径下的文件只能存在一个月,防止将zookeeper里面的数据删除

在配置文件末尾以下列格式添加集群配置信息

server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
server.A=B:C:D
A 是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据
就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比
较从而判断到底是哪个 server。
B 是这个服务器的地址;
C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的
Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

 ③在dataDir路径下添加文件myid,在里面写入上面的A值

cd /opt/zookeeper/zkdata

vi myid
 6.重新启动容器,启动集群
#重启容器zookeeper1
docker restart zookeeper1
#进入容器
docker exec -it zookeeper1 /bin/bash
#启动zookeeper服务端
bin/zkServer.sh start

将三个zookeeper分别启动后,查看集群状态

bin/zkServer.sh status

 

 

 

 最终发现zookeeper2为leader

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号