当前位置: 首页 > news >正文

【Docker】Docker Compose方式搭建分布式协调服务(Zookeeper)集群

开发分布式应用时,往往需要高度可靠的分布式协调,Apache ZooKeeper 致力于开发和维护开源服务器,以实现高度可靠的分布式协调。具体内容见zookeeper官网。现代应用往往使用云原生技术进行搭建,如何用Docker搭建Zookeeper集群,这里介绍使用Docker Compose方式搭建分布式协调服务(Zookeeper)集群,适用于单机Docker环境,无论是本地单机开发、测试环境单机验证,还是生产环境单机运行。

文章目录

  • 开发环境
  • 开发流程
  • 运行效果
  • 配置代码
    • zookeeper.yaml
    • README.md

开发环境

  1. ​macOS For Apple Silicon;
  2. Idea;
  3. Docker Desktop: 4.41.2,Engine:28.1.1,Compose: v2.35.1-desktop.1;
  4. Docker镜像:zookeeper:3.9.3;
  5. Docker Compose配置文件:zookeeper-cluster.yaml;
  6. 命令行启动配置文件:README.md.

开发流程

  1. 下载Docker Desktop并安装,Docker Desktop For Mac Apple Silicon地址;
  2. 编写Docker Compose配置文件,配置3个结点,每个结点的ZOO_MY_ID分别为1-3,配置客户端连接、集群结点通信端口和集群选举端口,配置3个服务结点.工程文件见zookeeper-cluster.yaml;
  3. 执行启动集群结点命令;
  4. 应用连接zookeeper集群的连接串设置为localhost:12181,localhost:22181,localhost:32181,如spring.cloud. zookeeper.connect-string=localhost:12181,localhost:22181,localhost:32181.

运行效果

启动集群图
启动集群图

配置代码

zookeeper.yaml

version: "3.8"
services:zk-node1:image: zookeeper:3.9.3container_name: zk-node1hostname: zk-node1  # 主机名用于集群通信environment:ZOO_MY_ID: 1  # 节点唯一标识:ml-citation{ref="3,4" data="citationList"}ZOO_SERVERS: "server.1=zk-node1:2888:3888;2181 server.2=zk-node2:2888:3888;2181 server.3=zk-node3:2888:3888;2181"ports:- "12181:2181"    # 客户端连接端口- "12888:2888"    # 集群节点通信端口- "13888:3888"    # 集群选举端口networks:- zk-cluster-netzk-node2:image: zookeeper:3.9.3container_name: zk-node2hostname: zk-node2environment:ZOO_MY_ID: 2ZOO_SERVERS: "server.1=zk-node1:2888:3888;2181 server.2=zk-node2:2888:3888;2181 server.3=zk-node3:2888:3888;2181"ports:- "22181:2181"    # 客户端连接端口- "22888:2888"    # 集群节点通信端口- "23888:3888"    # 集群选举端口networks:- zk-cluster-netzk-node3:image: zookeeper:3.9.3container_name: zk-node3hostname: zk-node3environment:ZOO_MY_ID: 3ZOO_SERVERS: "server.1=zk-node1:2888:3888;2181 server.2=zk-node2:2888:3888;2181 server.3=zk-node3:2888:3888;2181"ports:- "32181:2181"    # 客户端连接端口- "32888:2888"    # 集群节点通信端口- "33888:3888"    # 集群选举端口networks:- zk-cluster-net
networks:zk-cluster-net:driver: bridge  # 统一网络确保容器互联:ml-citation{ref="4,7" data="citationList"}

README.md

### zk集群启动
```shell
docker-compose -f zookeeper-cluster.yaml up -d
```
### zk集群停止
```shell
docker-compose -f zookeeper-cluster.yaml down
```

相关文章:

  • Text2SQL:自助式数据报表开发---0517
  • Java求职者面试:从Spring Boot到微服务的技术点解析
  • 【GESP】C++三级真题 luogu-B3925 [GESP202312 三级] 小猫分鱼
  • 【PostgreSQL系列】PostgreSQL 复制参数详解
  • MLLM常见概念通俗解析(四)
  • 项目的部署发布和访问的流程
  • Jsoup库和Apache HttpClient库有什么区别?
  • 嵌入式学习笔记 - U(S)ART 模块HAL 库函数总结
  • [C++面试] const相关面试题
  • C# 深入理解类(成员常量)
  • Android 性能优化入门(一)—— 数据结构优化
  • 学习黑客Kerberos深入浅出:安全王国的门票系统
  • 利用html制作简历网页和求职信息网页
  • 【Linux笔记】——线程同步条件变量与生产者消费者模型的实现
  • Go 与 Gin 搭建简易 Postman:实现基础 HTTP 拨测的详细指南
  • window自带截图快捷键
  • Flutter与Kotlin Multiplatform(KMP)深度对比及鸿蒙生态适配解析
  • ubuntu防火墙命令和放行ssh端口
  • VueUse/Core:提升Vue开发效率的实用工具库
  • Popeye
  • 经济日报:政府采购监管篱笆要扎得更牢
  • 上海将建设万兆小区、园区及工厂,为模型训练数据的传输提供硬件支持
  • 推开“房间”的门:一部“生命存在的舞台” 史
  • “南昌航空一号”成功发射,赣江鄱阳湖有了专属卫星守护
  • 外交部驻港公署正告美政客:威胁恫吓撼动不了中方维护国家安全的决心
  • 辽宁援疆前指总指挥王敬华已任新疆塔城地委副书记