CentOS7上从0开始搭建Zookeeper集群
CentOS7上搭建Zookeeper集群
- 环境准备
- 安装jdk
- 安装zookeeper
- 下载zookeeper
- 解压zookeeper
- 修改zookeeper配置文件
- 搭建zookeeper集群
- 修改zoo.cfg文件
- 添加myid文件
- 启动zookeeper集群
环境准备
首先你需要准备三台zookeeper(待会会讲zookeeper的安装流程),可以安装一台之后进行克隆。同时需要开放以下三个端口
- 2181:client连接zookeeper的端口
- 2888:集群内通信端口
- 3888:leader选举使用
你可以选择开放端口或关闭防火墙,开放端口命令:
firewall-cmd --zone=public --add-port=2181/tcp --permanent
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --reload
永久关闭防火墙命令:
systemctl disable --now firewalld
安装jdk
如图zookeeper需要1.8或以上版本的java(图片截自zookeeper官网):

我之前写过一篇安装jdk8的文章,你们可以直接按照那片文章来:https://blog.csdn.net/m0_51510236/article/details/113739345
安装zookeeper
下载zookeeper
在官网当中我们可以看到最新的稳定版本是 3.8.2 :

我们就下载这个版本,下载命令:
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.2/apache-zookeeper-3.8.2-bin.tar.gz
下载后如图:

解压zookeeper
因为下载的是压缩包,所以直接解压即可安装成功,我打算将zookeeper安装在 /opt/server 目录下,所以执行下面这行两行命令:
mkdir -p /opt/server
tar -zxvf apache-zookeeper-3.8.2-bin.tar.gz -C /opt/server
解压后如图:

修改zookeeper配置文件
我们执行下面两行命令来创建这个配置文件:
cd apache-zookeeper-3.8.2-bin/conf/
cp zoo_sample.cfg zoo.cfg
执行如图:

然后我们修改它:
vim zoo.cfg
可选修改内容(也可以保持默认):

接下来我们就可以尝试启动单机版zookeeper了,到zookeeper根目录下执行这行命令:
./bin/zkServer.sh start
启动后可以查看:

我们再执行这行命令查看zookeeper状态:
./bin/zkServer.sh status
可以看到是单机启动:

搭建zookeeper集群
上面我们讲解了如何安装zookeeper,接下来我们搭建zookeeper集群。我们需要三台zookeeper。你可以选择克隆,也可以选择直接安装三台。我来看看我的IP地址配置:
| IP地址 | 用途 |
|---|---|
| 192.168.1.181 | 第一台zookeeper |
| 192.168.1.182 | 第二台zookeeper |
| 192.168.1.183 | 第三台zookeeper |
我这里就直接克隆出了这三台,且均已连接上:

修改zoo.cfg文件
根据上面的IP地址我们来修改一下 zoo.cfg 文件:
cd /opt/server/apache-zookeeper-3.8.2-bin
vim conf/zoo.cfg
三台服务器都加上那么一个配置(注意修改IP地址):
server.1=192.168.1.181:2888:3888
server.2=192.168.1.182:2888:3888
server.3=192.168.1.183:2888:3888
加上后如图:

添加myid文件
我们需要在zookeeper的 dataDir (默认在/tmp/zookeeper下,如果修改了注意修改myid文件位置)下新增一个myid文件,这个文件的值取决于你在上一步在zoo.cfg文件下配置的值:

三台服务器分别执行下面这行代码(如果你修改了zookeeper默认的数据目录那么注意修改myid的文件位置):
- 192.168.1.181
echo 1 > /tmp/zookeeper/myid
- 192.168.1.182
echo 2 > /tmp/zookeeper/myid
- 192.168.1.183
echo 3 > /tmp/zookeeper/myid
执行后如图:

启动zookeeper集群
启动命令一样,我们在三台服务器上都执行下面这行命令:
# 来到安装zookeeper的目录
cd /opt/server/apache-zookeeper-3.8.2-bin
# 启动zookeeper
./bin/zkServer.sh start
然后我们执行下面这行命令查看zookeeper集群的状态:
./bin/zkServer.sh status
可以看到一主两从的zookeeper集群:

关注我,下篇文章将如何在SpringBoot当中使用zookeeper实现分布式锁功能。
相关文章:
CentOS7上从0开始搭建Zookeeper集群
CentOS7上搭建Zookeeper集群 环境准备安装jdk安装zookeeper下载zookeeper解压zookeeper修改zookeeper配置文件 搭建zookeeper集群修改zoo.cfg文件添加myid文件启动zookeeper集群 环境准备 首先你需要准备三台zookeeper(待会会讲zookeeper的安装流程)&am…...
康耐视读码器DataMan软件详细使用步骤
1、 点击桌面已经安装好的 dataman 软件并打开 2、 打开之后,点击刷新,刷出来读码器的图标,双击进行连接,或者选中后,点击右下角 的连接。(也可先进行第 9—(2)步更改读码器的 IP,对应的连接对象也更改到同一网 段)如图 3、 连接之后,在设置 快速设置下面把实时显…...
408强化(番外)文件管理
有点看不下去书,408,哎好久没看了,死磕数学时完全不想看其他科目,数学分数也尚未质变。 突然想到一个好点子,只看大纲尝试回忆一下这章的内容。 文件就是为了方便用户使用,按名访问而提出的,从…...
iptables 防火墙配置
文章目录 iptables 防火墙配置规则链的分类–五链处理的动作iptables 常用参数和作用iptables 防火墙配置查看规则链清空规则链设置默认规则将流入的流量丢弃允许ICMP协议流量通过删除默认策略允许所以流量通过设置将所有流入22端口的流量全部拒绝允许指定网段的22端口通过设置…...
面试官:我们深入聊聊Java虚拟机吧
哈喽!大家好,我是奇哥,一位专门给面试官添堵的职业面试员 文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟! 文章目录 前言面试Java虚拟机内存模型垃圾收集器…...
【电源专题】案例:异常样机为什么只在40%以下电量时与其他样机显示电量差异10%,40%以上电量差异却都在5%以内。
本案例发生在一个量产产品的测试中,因为产品带电池,所以需要测试产品对于电池电量显示的精确程度。产品使用的是最简单的开路电压查表法进行设计。 案例测试报告的问题在于不同样机之间电量百分比存在差异,大部分是在3%~4%之间。但在7.2V电压时,能够差异10%左右。 在文章:…...
React 全栈体系(七)
第四章 React ajax 一、理解 1. 前置说明 React本身只关注于界面, 并不包含发送ajax请求的代码前端应用需要通过ajax请求与后台进行交互(json数据)react应用中需要集成第三方ajax库(或自己封装) 2. 常用的ajax请求库 jQuery: 比较重, 如果需要另外引入不建议使用axios: 轻…...
NVIDIA 显卡硬件支持的精度模式
很多炼丹师不知道自己英伟达显卡支持哪些精度模式,本文整理了NVIDIA官网的数据,为你解开疑惑。 1. 首先了解CUDA计算能力及其支持的精度模式; 2. 查看自己显卡(或其它NVIDIA硬件)的计算能力值为多少。 表1 CUDA计算…...
【Java|golang】210. 课程表 II---拓扑排序
一、拓扑排序的定义: 先引用一段百度百科上对于拓扑排序的定义: 对一个有向无环图 ( Directed Acyclic Graph 简称 DAG ) G 进行拓扑排序,是将 G 中所有顶点排成一个线性序列,使得图中任意一对顶点 u 和 v ,若边 <…...
STM32CubeMX systick bug?
发觉用新版(V6.9.1)的它生成代码,会有问题。可能是 BUG。具体如下: 一个简单的点灯程序,用 Keil MDK 5.38a(compiler version 6)编译。 如果在变量前,不加上关键字“volatile”&am…...
徐亦达机器学习:Kalman Filter 卡尔曼滤波笔记 (一)
P ( x t P(x_t P(xt| x t − 1 ) x_{t-1}) xt−1) P ( y t P(y_t P(yt| x t ) x_t) xt) P ( x 1 ) P(x_1) P(x1)Discrete State DM A X t − 1 , X t A_{X_{t-1},X_t} AXt−1,XtAny π \pi πLinear Gassian Kalman DM N ( A X t − 1 B , Q ) N(AX_{t-1}B,Q)…...
Java和vue的包含数组组件contains、includes
List<String> tempList Arrays.asList("10018","1007","10017","1012"); if(tempList.contains(initMap.get("asset_type_id").toString())){// todo 计算运营终点桩号-起点桩号BigDecimal diffSum collectNum(col…...
OpenCV_CUDA_VS编译安装
一、OpenCV 我这里是下载的OpenCV4.5.4,但是不知道到在vs里面build时一直报错,后面换了4.7.0的版本测试,安装成功。 Release OpenCV 4.5.4 opencv/opencv GitHub 这个里面有官方预编译好的OpenCV库,可以直接食用。 扩展包&am…...
基于减法优化SABO优化ELM(SABO-ELM)负荷预测(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
记录第一个启动代码的诞生
核使用R52,参考汇编模板,一步一步来实现。 首先是ld文件,这个没啥好说的,主要是关注给vector_table划一块地址、stack地址,如下: .text.intvec :{_vectors_start .;KEEP(*(.text.intvec))_vectors_end .;…...
基于STM32的简化版智能手表
一、前言 本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果。项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DHT11,RTC,LED,KEY等器…...
揭秘弹幕游戏制作
最近好多人问弹幕游戏,甚至是招人的也要DOTS做弹幕游戏... 实际上目前的弹幕游戏绝大多数应该和DOTS没有半点关系,别忘了DOTS这项技术渲染问题还没能够被合理解决呢 所以目前用的全都是GPU Instance这项技术,于是乎我决定下场写这篇帖子&am…...
2327. 知道秘密的人数;1722. 执行交换操作后的最小汉明距离;2537. 统计好子数组的数目
2327. 知道秘密的人数 核心思想:动态规划,每天的人可以分为三种,可分享秘密的人,不可分享秘密的人,忘记秘密的人。定义f[i]为第i天可分享秘密的人,那么第(idelay ,iforget)天,会增加f[i]个可分…...
【TCPDF】使用TCPDF导出PDF文件
目录 一、安装TCPDF类库 二、安装字体 三、使用TCPDF导出PDF文件 目的:PHP通过TCPDF类库导出文件为PDF。 开发语言及类库:ThinkPHP、TCPDF 效果图如下 一、安装TCPDF类库 在项目根目录使用composer安装TCPDF,安装完成后会在vendor目录下…...
MacBook苹果电脑重装、降级系统
1、下载balenaEtcher镜像启动盘制作工具 https://tails.net/etcher/balenaEtcher-portable.exe 2、选择从文件烧录选择下载好的Mac 镜像文件 百度网盘 请输入提取码(Mac OS 10.10-12版本镜像文件) 第二步选择目标磁盘,这里需要准备一块1…...
别再只用Cesium了!Three.js + Cesium 1.8 整合实战:从零搞定天地图中文底图与BIM模型加载
Three.js与Cesium 1.8深度整合实战:天地图中文底图与BIM模型加载全解析 当我们需要在三维地理信息系统中同时展示宏观地理环境和精细建筑内部结构时,单独使用Cesium或Three.js往往难以完美兼顾。本文将带你完成一次技术栈的深度整合,解决国内…...
ESP8266 KiCAD库零基础上手:高效配置开源硬件设计工具指南
ESP8266 KiCAD库零基础上手:高效配置开源硬件设计工具指南 【免费下载链接】kicad-ESP8266 Schematic symbols and PCB footprints for ESP8266 modules 项目地址: https://gitcode.com/gh_mirrors/ki/kicad-ESP8266 在开源硬件设计领域,KiCAD库&…...
基于dify智能客服助手的yml配置实战:从零搭建高可用对话系统
在智能客服领域,快速响应和精准理解用户意图是核心诉求。然而,传统基于硬编码或复杂数据库配置的客服系统,往往面临开发周期长、业务逻辑调整困难、多环境部署繁琐等痛点。每次新增一个业务场景,都需要开发人员介入修改代码、测试…...
工单系统已经上线,但 IT 管理并没有真正变好
在很多企业中,引入 IT 工单系统往往被视为 IT 管理升级的重要一步。 有了统一入口、有了记录机制、有了流程流转,看起来一切都开始变得规范起来。但实际运行一段时间后,不少团队会发现: 工单确实在增加,流程也在走&…...
中国空间智能,梦想照进现实
2026年初,AI教母李飞飞的AI公司World Labs再次获得一笔10亿美元的投资,投资名单除了传统投资机构外,还不乏英伟达、Autodesk等行业巨头,这清晰地传递出市场信号:继AI大语言模型之后,空间智能已成为AI的下一…...
LiuJuan20260223Zimage参数详解:LoRA rank/alpha设置对人像细节影响深度分析
LiuJuan20260223Zimage参数详解:LoRA rank/alpha设置对人像细节影响深度分析 1. 引言:从一张好看到一张传神 你肯定见过很多AI生成的人像,有的乍一看还行,但总觉得哪里不对劲——可能是眼神呆滞,可能是发丝模糊&…...
在曹妃甸哪里可以吃到当天现捕上来的野生海鲜?
在曹妃甸,想要吃到当天现捕上来的野生海鲜,高尚堡老刘海鲜绝对是个绝佳的选择。2006 年,一群世代靠海吃海的渔民,在渤海湾码头开起了这家“老刘海鲜饭店”。起初他们只是想把自家渔船捕捞的野生海鲜,用最朴素的做法端给…...
基于YOLOv10深度学习的管道泄漏检测系统(YOLOv10+YOLO数据集+UI界面+Python项目+模型)
一、项目介绍 项目摘要 随着工业管道运输系统的日益复杂化,管道泄漏事故不仅会造成巨大的经济损失,还可能引发严重的环境污染和安全事故。为了实现对管道泄漏的快速、准确识别,本研究提出了一种基于YOLOv10深度学习模型的智能管道泄漏检测系…...
别再只用交叉熵了!医疗AI中疾病分级任务,试试PyTorch实现这个序数回归损失函数
医疗AI中的序数回归:超越交叉熵的疾病分级新范式 在医疗人工智能领域,我们经常遇到需要预测疾病严重程度分级的任务——从轻度到中度再到重度,这些类别之间存在明确的递进关系。传统做法是直接套用交叉熵损失函数,但这就像用尺子测…...
高效掌握Mermaid CLI:命令行图表工具自动化与高效渲染实战指南
高效掌握Mermaid CLI:命令行图表工具自动化与高效渲染实战指南 【免费下载链接】mermaid-cli Command line tool for the Mermaid library 项目地址: https://gitcode.com/gh_mirrors/me/mermaid-cli 在技术文档创作和软件开发过程中,如何快速将文…...
