docker-compose Zookeeper 集群搭建

文章目录

  • 前言
    • docker-compose Zookeeper 集群搭建
      • 1. Zookeeper下载
      • 2. 制作Dockerfile文件
      • 3. 构建镜像
      • 4. docker-compose 管理
      • 5. docker-compose构建/启动
      • 6. 验证
        • 6.1 docker ps
        • 6.2 使用 zkCli.sh 连接并验证集群

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


docker-compose Zookeeper 集群搭建

1. Zookeeper下载

归档:
https://archive.apache.org/dist/zookeeper
官网:
https://downloads.apache.org/zookeeper/
我使用的:
3.6.2版本,下面是下载地址:
https://archive.apache.org/dist/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

2. 制作Dockerfile文件

# 使用包含JDK 8 的基础镜像
FROM yzy:v2.3
LABEL maintainer="yangzhenyu"# 复制 ZooKeeper tar 文件到容器中
COPY apache-zookeeper-3.6.2-bin.tar.gz /app/appuser/# 解压 tar 文件并配置环境
RUN cd /app/appuser \&& mkdir -p data logs \&& tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz  \&& cd /app/appuser/apache-zookeeper-3.6.2-bin/conf \&& cp -rf zoo_sample.cfg zoo.cfg# 设置 ZooKeeper 环境变量
RUN set -x \&& echo 'export ZOOKEEPER_HOME=/app/appuser/apache-zookeeper-3.6.2-bin' >> /etc/bashrc \&& echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/sbin' >> /etc/bashrc# 暴露 ZooKeeper 的默认端口
EXPOSE 2181# 设置工作目录
WORKDIR /app/appuser/apache-zookeeper-3.6.2-bin# 启动 ZooKeeper 服务
# CMD ["bin/zkServer.sh", "start-foreground"]

大概意思是将安装包apache-zookeeper-3.6.2-bin.tar.gz放到/app/appuser目录下,解压压缩包,同时创建data文件夹,
将zoo.cfg文件放入到/app/appuser/apache-zookeeper-3.6.2-bin/conf/目录下。

3. 构建镜像

docker build -t zk:v1.0 .

在这里插入图片描述

4. docker-compose 管理

version: '3.8'
services:zk1:build:context: .dockerfile: Dockerfile-zk  image: zk:v1.0container_name: zk1user: rootprivileged: trueshm_size: '256m'   networks:kafka_network:ipv4_address: 192.168.160.5volumes:- /f/kafka-docker/zookeeper/node1/data:/app/appuser/data- /f/kafka-docker/zookeeper/zoo.cfg:/app/appuser/apache-zookeeper-3.6.2-bin/conf/zoo.cfg- /f/kafka-docker/zookeeper/node1/logs:/app/appuser/apache-zookeeper-3.6.2-bin/logsrestart: unless-stoppedcommand: bash -c " echo -n '1' > /app/appuser/data/myid  && chmod 777 /app/appuser/data && chmod 777 /app/appuser/data/myid && cd /app/appuser/apache-zookeeper-3.6.2-bin/bin && ./zkServer.sh start-foreground"zk2:build:context: .dockerfile: Dockerfile-zk    image: zk:v1.0container_name: zk2user: rootprivileged: trueshm_size: '256m'  networks:kafka_network:ipv4_address: 192.168.160.6volumes:- /f/kafka-docker/zookeeper/node1/data:/app/appuser/data- /f/kafka-docker/zookeeper/zoo.cfg:/app/appuser/apache-zookeeper-3.6.2-bin/conf/zoo.cfg- /f/kafka-docker/zookeeper/node2/logs:/app/appuser/apache-zookeeper-3.6.2-bin/logsrestart: unless-stoppedcommand: bash -c " echo -n '2' > /app/appuser/data/myid  && chmod 777 /app/appuser/data && chmod 777 /app/appuser/data/myid && cd /app/appuser/apache-zookeeper-3.6.2-bin/bin && ./zkServer.sh start-foreground"zk3:build:context: .dockerfile: Dockerfile-zk    image: zk:v1.0container_name: zk3user: rootprivileged: trueshm_size: '256m'  networks:kafka_network:ipv4_address: 192.168.160.7volumes:- /f/kafka-docker/zookeeper/node1/data:/app/appuser/data- /f/kafka-docker/zookeeper/zoo.cfg:/app/appuser/apache-zookeeper-3.6.2-bin/conf/zoo.cfg- /f/kafka-docker/zookeeper/node3/logs:/app/appuser/apache-zookeeper-3.6.2-bin/logsrestart: unless-stoppedcommand: bash -c " echo -n '3' > /app/appuser/data/myid  && chmod 777 /app/appuser/data && chmod 777 /app/appuser/data/myid && cd /app/appuser/apache-zookeeper-3.6.2-bin/bin && ./zkServer.sh start-foreground"
networks:kafka_network:driver: bridgeipam:config:- subnet: 192.168.160.0/24gateway: 192.168.160.1

zoo.cfg:

# Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,
# 也就是每个 tickTime 时间就会发送一个心跳。
tickTime=2000admin.serverPort=8887
# 是否启动后台管理
admin.enableServer=true
# 进入后台的命令 只能是  http://localhost:8887/commands 访问
admin.commandUrl=/commands
# 指定了需要保留的文件数目。默认是保留3个
autopurge.snapRetainCount=4
# ZK提供了自动清理事务日志和快照文件的功能,这个参数指定了清理频率,单位是小时,
# 需要配置一个1或更大的整数,默认是0,表示不开启自动清理功能。
autopurge.purgeInterval=1
# 用于集群,允许从节点连接并同步到 master 节点的初始化连接时间,以 tickTime 的倍数来表示;
initLimit=10
# 用于集群, master 主节点与从节点之间发送消息,请求和应答时间长度(心跳机制);
syncLimit=5
# Zookeeper 存储快照文件snapshot的目录
dataDir=/app/appuser/data
# Zookeeper 保存事务日志文件的目录
dataLogDir=/app/appuser/logs
# 客户端连接Zookeeper 服务器的端口
# Zookeeper 会监听这个端口,接受客户端的访问请求
clientPort=2181
# localhost: server·1的 ip地址  2220:集群间的通信端口 6660当进行选举时候的通信端口
server.1=192.168.160.5:2220:6660
server.2=192.168.160.6:2220:6660
server.3=192.168.160.7:2220:6660

5. docker-compose构建/启动

docker-compose build

在这里插入图片描述
启动:

docker-compose -f docker-compose.yml up -d
在这里插入图片描述

6. 验证

6.1 docker ps

在这里插入图片描述

6.2 使用 zkCli.sh 连接并验证集群

docker exec -it zk1 bash
然后使用 zkCli.sh 连接到 Zookeeper:
cd /app/appuser/apache-zookeeper-3.6.2-bin/bin
./zkCli.sh -server 192.168.160.5:2181

在这里插入图片描述
如果连接成功,你将看到类似的提示:

Connecting to 192.168.160.5:2181
然后查看节点Zk目录: ls -R /
在这里插入图片描述
创建节点zk目录

create /yzy01

在这里插入图片描述

退出zk1,进入zk2,查看节点Zk目录:
在这里插入图片描述

在160.5创建的,在160.6中也可以看到,验证完毕。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/68393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WIN11 UEFI漏洞被发现, 可以绕过安全启动机制

近日,一个新的UEFI漏洞被发现,可通过多个系统恢复工具传播,微软已经正式将该漏洞标记为追踪编号“CVE-2024-7344”。根据报告的说明,该漏洞能让攻击者绕过安全启动机制,并部署对操作系统隐形的引导工具包。 据TomsH…

R语言学习笔记之高效数据操作

一、概要 数据操作是R语言的一大优势,用户可以利用基本包或者拓展包在R语言中进行复杂的数据操作,包括排序、更新、分组汇总等。R数据操作包:data.table和tidyfst两个扩展包。 data.table是当前R中处理数据最快的工具,可以实现快…

【数据结构】 并查集 + 路径压缩与按秩合并 python

目录 前言模板朴素实现路径压缩按秩合并按树高为秩按节点数为秩 总结 前言 并查集的基本实现通常使用森林来表示不同的集合,每个集合用一棵树表示,树的每个节点有一个指向其父节点的指针。 如果一个节点是它自己的父节点,那么它就是该集合的代…

低代码系统-产品架构案例介绍、得帆云(八)

产品名称 得帆云DeCode低代码平台-私有化 得帆云DeMDM主数据管理平台 得帆云DeCode低代码平台-公有云 得帆云DePortal企业门户 得帆云DeFusion融合集成平台 得帆云DeHoop数据中台 名词 概念 云原生 指自己搭建的运维平台,区别于阿里云、腾讯云 Dehoop 指…

【PyTorch】5.张量索引操作

目录 1. 简单行、列索引 2. 列表索引 3. 范围索引 4. 布尔索引 5. 多维索引 个人主页:Icomi 在深度学习蓬勃发展的当下,PyTorch 是不可或缺的工具。它作为强大的深度学习框架,为构建和训练神经网络提供了高效且灵活的平台。神经网络作为…

基于微信小程序高校课堂教学管理系统 课堂管理系统微信小程序(源码+文档)

目录 一.研究目的 二.需求分析 三.数据库设计 四.系统页面展示 五.免费源码获取 一.研究目的 困扰管理层的许多问题当中,高校课堂教学管理也是不敢忽视的一块。但是管理好高校课堂教学又面临很多麻烦需要解决,如何在工作琐碎,记录繁多的情况下将高校课堂教学的当前情况反…

论文阅读笔记:VMamba: Visual State Space Model

论文阅读笔记:VMamba: Visual State Space Model 1 背景2 创新点3 方法4 模块4.1 2D选择性扫描模块(SS2D)4.2 加速VMamba 5 效果5.1 和SOTA方法对比5.2 SS2D和自注意力5.3 有效感受野5.4 扫描模式 论文:https://arxiv.org/pdf/240…

【文星索引】搜索引擎项目测试报告

目录 一、项目背景二、 项目功能2.1 数据收集与索引2.2 API搜索功能2.3 用户体验与界面设计2.4 性能优化与维护 三、测试报告3.1 功能测试3.2 界面测试3.3 性能测试3.4 兼容性测试3.5 自动化测试 四、测试总结4.1 功能测试方面4.2 性能测试方面4.3 用户界面测试方面 一、项目背…

DBO-高斯回归预测matlab

蜣螂优化算法(Dung Beetle Optimizer, DBO)是一种新型的群智能优化算法,在2022年底提出,主要是受蜣螂的的滚球、跳舞、觅食、偷窃和繁殖行为的启发。 本次研究使用的是 Excel 格式的股票预测数据。数据集按照 8:1:1 的比例&#x…

java后端之事务管理

Transactional注解:作用于业务层的方法、类、接口上,将当前方法交给spring进行事务管理,执行前开启事务,成功执行则提交事务,执行异常回滚事务 spring事务管理日志: 默认情况下,只有出现Runti…

【嵌入式】总结——Linux驱动开发(三)

鸽了半年,几乎全忘了,幸亏前面还有两篇总结。出于快速体验嵌入式linux的目的,本篇与前两篇一样,重点在于使用、快速体验,uboot、linux、根文件系统不作深入理解,能用就行。 重新梳理一下脉络,本…

RabbitMQ 多种安装模式

文章目录 前言一、Windows 安装 RabbitMq1、版本关系2、Erlang2.1、下载安装 Erlang 23.12.2、配置 Erlang 环境变量 3、RabbitMQ3.1、下载安装 RabbitMQ 3.8.93.2、环境变量3.3、启动RabbitMQ 管理插件3.3、RabbitMQ3.4、注意事项 二、安装docker1、更新系统包:2、…

使用python-docx包进行多文件word文字、字符批量替换

1、首先下载pycharm。 2、改为中文。 3、安装python-docx包。 搜索包名字,安装。 4、新建py文件,写程序。 from docx import Documentdef replace1(array1):# 替换词典(标签值按实际情况修改)dic {替换词1: array1[0], 替换…

Android中Service在新进程中的启动流程

目录 1、Service与AMS交互框架介绍 1.1、认识AMS代表IActivityManager 1.2、认识客户端代表IApplicationThread 2、Service启动流程概览 我们知道Android有四大组件,Activity、Service、ContentProvider、Broadcast,每个组件在系统运行中或者我们编写…

read+write实现:链表放到文件+文件数据放到链表 的功能

思路 一、 定义链表: 1 节点结构(数据int型) 2 链表操作(创建节点、插入节点、释放链表、打印链表)。 二、链表保存到文件 1打开文件 2遍历链表、写文件: 遍历链表,write()将节点数据写入文件。…

【景区导游——LCA】

题目 代码 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e5 10; const int M 2 * N; int p[N][18], d[N], a[N]; ll dis[N][18]; //注意这里要开long long int h[N], e[M], ne[M], idx, w[M]; int n, k; void add(int a, int b, …

二进制安卓清单 binary AndroidManifest - XCTF apk 逆向-2

XCTF 的 apk 逆向-2 题目 wp&#xff0c;这是一道反编译对抗题。 题目背景 AndroidManifest.xml 在开发时是文本 xml&#xff0c;在编译时会被 aapt 编译打包成为 binary xml。具体的格式可以参考稀土掘金 MindMac 做的类图&#xff08;2014&#xff09;&#xff0c;下面的博…

反向代理模块。。

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求&#xff0c;然后将请求转发给内部网络上的服务器&#xff0c;将从服务器上得到的结果返回给客户端&#xff0c;此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说&#xff0c;反向代理就相当于…

flink StreamGraph解析

Flink程序有三部分operation组成&#xff0c;分别是源source、转换transformation、目的地sink。这三部分构成DAG。 DAG首先生成的是StreamGraph。 用户代码在添加operation的时候会在env中缓存&#xff08;变量transformations&#xff09;&#xff0c;在env.execute()执行的…

WPS数据分析000010

基于数据透视表的内容 一、排序 手动调动 二、筛选 三、值显示方式 四、值汇总依据 五、布局和选项 不显示分类汇总 合并居中带标签的单元格 空单元格显示 六、显示报表筛选页