ZooKeeper 3.7.1三节点集群部署:myid、选举与同步测试
前言在本地学习ZooKeeper时通常只需要启动一个服务端再连接localhost:2181完成节点的创建和查询。这种方式适合熟悉命令但单个进程停止后整个协调服务就无法继续提供访问。ZooKeeper集群通常由奇数个节点组成。三节点集群允许其中一个节点暂时不可用只要剩余节点仍能形成多数派集群就可以继续完成Leader选举并对外提供服务。本文将准备三台虚拟机配置固定IP、主机名映射和ZooKeeper 3.7.1在每个节点中设置相同的集群成员列表再通过不同的myid标识三台服务器。集群启动后还会检查Leader和Follower角色创建临时、顺序及持久节点并验证数据能否在不同节点之间同步。最后使用cpolar建立一个TCP公网入口用于受控环境下的远程连接测试。需要注意该入口只指向一个节点不能替代完整的集群高可用访问方案。1.前提条件准备三台虚拟机并列出对应的IP地址和主机名如下图所示IPHostname192.168.42.140zookeeper1192.168.42.145zookeeper2192.168.42.146zookeeper3在虚拟机分别对hostname进行命名hostnamectl set-hostname zookeeper1 //修改hostnamehostname//查看hostname2.环境准备(3虚拟机都要做)关闭防火墙systemctl stop firewalld //停止firewalld防火墙 systemctl disable firewalld //disable防火墙使其开机不自启 systemctl status firewalld //查看firewalld是否已经关闭配置操作系统SELINUX修改成disabled)vi/etc/sysconfig/selinux设置本机IP地址与MAC地址vi/etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO的值修改成static文末加上对应的IP地址与MAC地址等数据MAC 地址查看方法ip link show ens33添加主机名与映射关系192.168.42.140 zookeeper1192.168.42.145 zookeeper2192.168.42.146 zookeeper33.安装zookeeper(三台虚拟机都要操作)3.1环境准备jvm环境JDK 必须是7或以上版本java-version3.2.下载安装去zookeeper 官网下载完后将压缩包上传到linux环境中我这边上传到/shan路径:对压缩包进行解压:tar-zxvfapache-zookeeper-3.7.1-bin.tar.gz重命名mvapache-zookeeper-3.7.1-bin/ zookeeper3.3 配置进入zookeeper目录下的conf目录将目录中的zoo_sample.cfg改成zoo.cfg:mvzoo_sample.cfg zoo.cfg在zookeeper目录下新建一个zkData文件夹mkdirzkData回到zoo.cfg中对其进行修改将dataDir的路径换成我们刚刚新建的zkData的路径vimzoo.cfg3.3.启动测试进入bin目录下启动服务端:./zkServer.sh startjps查看进程:jps回到zookeeper目录下启动客户端:bin/zkCli.sh3.4.退出quit3.5关闭客户端./zkServer.sh stop4.配置zookeeper集群添加环境变量exportZK_HOME/shan/zookeeperexportPATH$PATH:$ZK_HOME/bin对zookeeper/conf 中的zoo.cfg修改server.1192.168.42.140:2888:3888server.2192.168.42.145:2888:3888server.3192.168.42.146:2888:3888进入zkData中修改myid文件vimyid5.zookeeper集群测试启动各个服务器的zookeeper./zkServer.sh start启动成功的被选举为zookeeper3被选举为leader而zookeeper2和zookeeper1成为了follower至此zookeeper集群搭建成功啦~6.zookeeper简单使用登录到节点./zkCli.sh-server127.0.0.1:2181使用help来查看zookeeper客户端命令ls [watch] : 查看zookeeper节点默认情况下只存在一个zookeeper节点-s:顺序节点,顺序是累加的,由 zookeeper 提供-e:临时节点,服务器断开,然后重新连接服务器之后该节点会消失ls/ls/zookeeper create-e/znode01 001 create-e-s/znode02 002 create /znode03 003 create-s/znode04 004ls/断开 zookeeper 后台服务之后,再次连接,可以看到根节点下的临时节点 znode01、znode02 已经消失了,但是由于 znode03、znode04 是持久节点,所以还继续存在查看节点值get /znode03获取节点的状态体stat/znode03修改节点值set/znode0310086删除节点zookeeper中有两种删除的方式delete [version]:类似于 Linux 中删除某一个文件rmr path:类似于递归删除文件夹leader创建了一个文件follower也会创建leaderfollower在现实开发或测试场景中你本地虚拟机里运行的ZooKeeper服务地址是 192.168.42.145:2181但该 IP 仅限内网访问外部设备比如你的手机、公司电脑或云服务器无法直接连接。这时你可以借助 Cpolar 实现内网穿透只需在 ZooKeeper所在机器上执行 cpolarCpolar 就会为你分配一个公网地址。之后无论你在世界哪个角落都可以像这样连接:./zkCli.sh-server3.tcp.cpolar.io:12345跟我一起来安装cpolar吧7.安装cpolar内网穿透工具cpolar 可以将你本地电脑中的服务如 SSH、Web、数据库映射到公网。即使你在家里或外出时也可以通过公网地址连接回本地运行的开发环境。❤️以下是安装cpolar步骤使用一键脚本安装命令sudocurlhttps://get.cpolar.sh|sh安装完成后执行下方命令查看cpolar服务状态如图所示即为正常启动sudosystemctl status cpolarCpolar安装和成功启动服务后在浏览器上输入虚拟机主机IP加9200端口即:【ip:9200】访问Cpolar管理界面使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可打开浏览器访问本地9200端口使用cpolar账户密码登录即可,登录后即可对隧道进行管理。8.配置公网地址通过配置你可以在本地 WSL 或 Linux 系统上运行 SSH 服务并通过 Cpolar 将其映射到公网从而实现从任意设备远程连接开发环境的目的。隧道名称可自定义本例使用了:zookeeper注意不要与已有的隧道名称重复协议tcp本地地址端口类型随机临时TCP端口地区China Top创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用任意一个地址在终端中访问即可。tcp 表示使用的协议类型2.tcp.cpolar.top是 Cpolar 提供的域名10518是随机分配的公网端口号通过Cpolar提供的公网地址和端口ZooKeeper就可以在公网访问啦./zkCli.sh-server2.tcp.cpolar.top:105189.保留固定TCP公网地址使用cpolar为其配置TCP地址该地址为固定地址不会随机变化。选择区域和描述有一个下拉菜单当前选择的是“China Top”。右侧输入框用于填写描述信息。保留按钮在右侧有一个橙色的“保留”按钮点击该按钮可以保留所选的TCP地址。列表中显示了一条已保留的TCP地址记录。地区显示为“China Top”。地址显示为“31.tcp.cpolar.top:11780”。登录cpolar web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道zookeeper点击右侧的编辑。修改隧道信息将保留成功的TCP端口配置到隧道中。端口类型选择固定TCP端口预留的TCP地址填写保留成功的TCP地址点击更新。创建完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的TCP地址。最后测试一下固定的地址是否好用测试命令./zkCli.sh-server31.tcp.cpolar.top:11780总结完成以上配置后三台虚拟机已经组成一个ZooKeeper集群。每台服务器都使用相同的server.1、server.2和server.3配置再通过各自的数据目录中的myid确定节点身份。集群启动后会选举一台服务器作为Leader其余节点作为Follower。客户端创建或修改znode时变更会经过集群事务流程同步到其他节点因此在不同服务器中能够读取到相同的数据。临时节点会与客户端会话绑定会话失效后节点将被删除持久节点则会继续保存在ZooKeeper数据目录中。正常重启服务不会自动清空持久节点但删除数据目录、错误挂载目录或重新初始化环境可能造成数据丢失。通过cpolar将2181端口映射为公网TCP地址后可以在其他网络环境中使用zkCli.sh连接对应节点。这里的本地地址应明确填写2181端口不应开放用于集群选举和节点通信的2888、3888端口。当前配置只为一台ZooKeeper服务器建立了公网隧道。因此即使后端是三节点集群只要被映射的这台服务器停止外部客户端使用的公网地址仍然会断开。这种方式适合临时实验不能直接称为公网高可用入口。ZooKeeper客户端在正式环境中通常应配置多个服务器地址让客户端能够在单个节点故障后切换连接。远程访问场景也需要单独设计多个受控入口而不是只依赖一个固定TCP地址。更重要的是ZooKeeper并不适合在没有保护的情况下直接开放到互联网。公网测试前应配置ACL和身份认证限制可访问的znode及操作权限并避免在其中保存明文密码、令牌和其他敏感配置。文章中关闭防火墙和SELinux的做法只适合受控实验环境。长期运行时应恢复必要的系统防护只允许三台节点之间访问集群端口并限制2181端口的来源范围。用于生产环境时还需要补充事务日志和快照清理、JVM参数、磁盘监控、服务守护、配置备份及节点故障演练。三台虚拟机也应尽量分布在不同物理主机或故障域中避免底层设备故障同时影响全部节点。

相关新闻

XUnity.AutoTranslator:打破语言壁垒,让全球游戏为你开放

XUnity.AutoTranslator:打破语言壁垒,让全球游戏为你开放

XUnity.AutoTranslator:打破语言壁垒,让全球游戏为你开放 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏中的复杂对话和界面而烦恼吗?语言障碍是否让你…

2026/8/5 7:55:25 阅读更多 →
vllm continue batching

vllm continue batching

vLLM Continuous Batching:从 Forward Shape 理解两个核心参数 核心一句话: 传统推理里的 batch 通常是一个补齐后的二维矩阵 [B, L_max];vLLM 的 continuous batching 把 batch 改造成“每一轮 GPU forward 临时拼出来的一批 token”。 max_num_seqs 限制本轮有多少条序列参…

2026/8/5 7:54:25 阅读更多 →
深入解析哈希表:从核心原理到动态扩展策略

深入解析哈希表:从核心原理到动态扩展策略

目录 一、hash查询的核心流程二、哈希表的两个核心设计三、装填因子四、静态哈希表 1. 线性探测2. Robin Hood哈希3. Cuckoo 哈希 五、动态哈希表 1. 链式哈希2. 可扩展哈希3. 线性哈希 六、几种方法的比较七、哈希表与B树的区别 一.hash查询的核心流程 键(key)通过哈希函数…

2026/8/5 7:54:25 阅读更多 →

最新新闻

ShardingJDBC强制路由技术解析与实践

ShardingJDBC强制路由技术解析与实践

1. ShardingJDBC强制路由的本质与价值 在分布式数据库架构中,数据分片(Sharding)是解决单机性能瓶颈的核心方案。但分片带来的一个直接问题就是:当我们需要执行跨分片操作时,如何精确控制SQL语句的路由路径&#xff1f…

2026/8/5 10:50:50 阅读更多 →
AI搜索可见度工具怎么选?国内外主流平台监控重点梳理

AI搜索可见度工具怎么选?国内外主流平台监控重点梳理

AI搜索可见度工具怎么选?国内外主流平台监控重点梳理 AI搜索可见度工具的选择,不能只看“支持多少平台”。企业更应该看监控重点是否匹配自己的市场:中文业务看国内问答入口和官网内容协同,海外业务看英文资料、来源页、AI声量和…

2026/8/5 10:50:50 阅读更多 →
EPLAN Electric P8 2024详细安装步骤

EPLAN Electric P8 2024详细安装步骤

注意EPLAN Electric P8 2024版不支持24H2及以上的Windows版本下列操作在Windows 11 专业版23H2系统中进行一、准备工作1、打开下面路径C:\Windows\System32\drivers\etc2、将“hosts”文件移动到桌面3、用记事本打开“hosts”文件4、将以下内容添加到最下方0.0.0.0 eplan.prod.…

2026/8/5 10:50:50 阅读更多 →
多Agent协作:多个AI共同完成复杂任务

多Agent协作:多个AI共同完成复杂任务

多Agent协作:多个AI共同完成复杂任务📝 本章学习目标:通过本章学习,你将全面掌握"多Agent协作:多个AI共同完成复杂任务"这一核心主题,建立系统性认知。一、引言:为什么这个话题如此重…

2026/8/5 10:50:49 阅读更多 →
Cocos Creator横屏H5游戏在Safari上的全屏适配与体验优化方案

Cocos Creator横屏H5游戏在Safari上的全屏适配与体验优化方案

1. 项目概述:横屏游戏在Safari上的“最后一公里”难题如果你用Cocos Creator开发过移动端H5游戏,并且主要面向iOS用户,那你大概率在Safari浏览器上遇到过这个“老大难”问题:游戏明明设计成了强制横屏,但在iPhone或iPa…

2026/8/5 10:50:49 阅读更多 →
MySQL事务与锁机制:高并发系统的核心保障

MySQL事务与锁机制:高并发系统的核心保障

1. 为什么MySQL事务与锁是高并发系统的命脉上周处理了一个线上事故:某电商平台大促时,库存系统出现超卖,同一件商品被卖出120%的库存量。追查发现是开发团队在订单处理逻辑中错误配置了事务隔离级别,导致并发请求读取到脏数据。这…

2026/8/5 10:49:49 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →