docker-compose快速构建zookeeper集群

前言

关于分布式锁,之前一直使用的是redis分布式锁,最近研究了一下zookeeper的分布式锁,zookeeper的机制让他更适合做锁,后面的节点会通过监听前一个节点的设计方式比较喜欢,想实践一下。因此先搭建一个zookeeper集群,直接用docker来构建无疑是快中之快。

docker先行之构建zk集群
# 直接run最新版本的zk
docker run --name my_zookeeper -d zookeeper:latest

# 查看日志
docker logs -f my_zookeeper
日志输出截图

在这里插入图片描述

# 直接连接zk
docker run -it --rm --link my_zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper
连接成功并进行简单指令

在这里插入图片描述

基于docker构建zk单节点就完成了。

docker-compose快速构建zookeeper集群

话不多说,直接上docker-compose.yml文件,这里有个注意的点,我这里使用的zookeeper版本是3.4.12并没有用最新版本,原因是我使用最新版本构建集群的时候,通过客户端连接会报socket相关的错误,查看了相关issue发现应该是高版本的问题,所以降低了版本

version: '2'
services:
    zoo1:
        image: zookeeper:3.4.12
        restart: always
        container_name: zoo1
        ports:
            - "2181:2181"
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
 
    zoo2:
        image: zookeeper:3.4.12
        restart: always
        container_name: zoo2
        ports:
            - "2182:2181"
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
 
    zoo3:
        image: zookeeper:3.4.12
        restart: always
        container_name: zoo3
        ports:
            - "2183:2181"
        environment:
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

启动集群并且查看

在这里插入图片描述

查看自动构建的网络:zookeeper_default

在这里插入图片描述

使用 Docker 命令行客户端连接 ZK 集群
docker run -it --rm \
        --link zoo1:zk1 \
        --link zoo2:zk2 \
        --link zoo3:zk3 \
        --net zookeeper_default \
        zookeeper zkCli.sh -server zk1:2181,zk2:2181,zk3:2181

可以看到,连接成功,并且可以执行命令。
在这里插入图片描述

检查集群状态
# 这里的端口换成刚才构建zk的三个端口分别查看
echo stat | nc 127.0.0.1 2181

在这里插入图片描述
我们可以看到三个节点,一个是leader另外两个是follower。至此,可以开始下一步zookeeper分布式锁的开发了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码大师麦克劳瑞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值