游乐游手机版
首页/科技数码/文章详情

Zookeeper与Kafka高可用集群部署:保姆级实战指南

时间:2025-10-31 21:23
今天分享一下如何搭建一套zookeeper+Kafka的消息队列集群。虽然Kafka在新版本已经可以不通过zookeeper就可以实现高可用,但是企业中大多数还是zookeeper+Kafka这个黄

今天为大家带来一份详细的ZooKeeper与Kafka集群搭建指南。虽然新版Kafka已经能够脱离ZooKeeper实现高可用,但在企业级应用中,ZooKeeper+Kafka这对黄金搭档仍然是主流选择。

Kafka作为分布式消息中间件,能够与Flink、Spark、ELK、日志采集等组件无缝集成,构建强大的实时数据处理平台。

接下来我们将通过实际操作,一步步完成ZooKeeper+Kafka集群的部署。理论学习固然重要,但动手实践更能加深理解,让我们先把集群环境搭建起来。

篇幅较长,建议先收藏!

一、基础环境准备

1. 服务器规划

建议准备3台服务器,构建高可用集群环境。

2. 环境依赖

三台服务器均需执行以下操作:

(1) 修改主机名

# 节点1hostnamectl set-hostname node1# 节点2hostnamectl set-hostname node2# 节点3 hostnamectl set-hostname node3

(2) 安装 JDK 1.8+

下载JDK安装包:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

也可以直接通过yum安装OpenJDK,速度更快

# 将下载上传三个服务器后解压到/data盘tar -xvf jdk-8u461-linux-x64.tar.gz -C /data

配置环境变量:

vi /etc/profile

在文件末尾添加以下内容:

export JAVA_HOME=/data/jdk1.8.0_461export JAVA_BIN=$JAVA_HOME/binexport CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_BIN

让配置生效:

source /etc/profile

(3) 关闭防火墙

测试环境可关闭,生产需开放端口。

systemctl stop firewalldsystemctl disable firewalld

(4) 配置主机名解析

cat >> /etc/hosts << EOF10.0.0.190 node110.0.0.191 node210.0.0.192 node3EOF

(5) 关闭SELinux

# 永久关闭sed -i 's/enforcing/disabled/' /etc/selinux/config # 临时setenforce 0

二、部署 Zookeeper 集群

Kafka依赖ZooKeeper管理集群状态,因此需要先安装ZooKeeper。可以先在一个节点下载配置,完成后复制到其他节点即可。

1. 下载并解压(节点1操作)

# 下载,可以选择合适的版本下载wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz# 解压tar -xvf apache-zookeeper-3.8.4-bin.tar.gz -C /data

2. 配置 zoo.cfg

# 进入配置文件目录cd /data/apache-zookeeper-3.8.4-bin/conf# 复制参考配置文件cp zoo_sample.cfg zoo.cfg# 修改配置文件,主要修改下面两项dataDir=/data/zookeeper/dataserver.1=node1:2888:3888server.2=node2:2888:3888server.3=node3:2888:3888

参数解析:

dataDir:存储快照和myid文件的路径。 server.X:集群成员配置,其中2888端口:内部通信端口,与Leader通信;3888端口:用于选举Leader。

3. 拷贝到另外两个节点

scp -r /data/apache-zookeeper-3.8.4-bin root@10.0.0.191:/datascp -r /data/apache-zookeeper-3.8.4-bin root@10.0.0.192:/data

4. 配置节点 ID

# 每个节点新建文件夹mkdir -p /data/zookeeper/data# 节点1echo 1 > /data/zookeeper/data/myid # 节点2echo 2 > /data/zookeeper/data/myid# 节点3echo 3 > /data/zookeeper/data/myid

5. 配置环境变量

将zookeeper加入环境变量,方便后期启动。三个节点均需配置。

vi /etc/profile # 尾部添加export ZOOKEEPER_HOME=/data/apache-zookeeper-3.8.4-binexport PATH=$ZOOKEEPER_HOME/bin:$PATH# 使配置文件生效source /etc/profile

6. 启动 Zookeeper

zkServer.sh startzkServer.sh status

确认3台机器都正常启动,其中两台为follower,一台为leader,则ZooKeeper集群安装成功。

三、部署 Kafka 集群

1. 下载并解压

跟ZooKeeper一样,先在节点1下载,配置完后复制到另外两个节点。

# 下载安装包wget https://downloads.apache.org/kafka/3.9.1/kafka_2.13-3.9.1.tgz# 解压到/data目录tar -xvf kafka_2.13-3.9.1.tgz -C /data

2. 修改配置文件

进入到安装目录,编辑配置文件server.properties。

cd /data/kafka_2.13-3.9.1/configvi server.properties

修改下面信息

broker.id=1 # 不得重复,整个集群中唯一listeners=PLAINTEXT://10.0.0.190:9092 # 监听端口log.dirs=/data/kafka/logszookeeper.connect=node1:2181,node2:2181,node3:2181num.partitions=3

参数解析:

broker.id:Kafka Broker唯一ID,node1=1,node2=2,node3=3。 listeners:服务监听地址和端口。需要换成真实的IP地址,每个节点填本机IP地址。 log.dirs:存储Kafka消息日志的目录。建议挂载大容量磁盘。 num.partitions:Topic默认分区数,决定并行消费能力。 zookeeper.connect:连接zookeeper。

3. 配置拷贝到另外两个节点

scp -r /data/kafka_2.13-3.9.1 root@10.0.0.191:/datascp -r /data/kafka_2.13-3.9.1 root@10.0.0.192:/data

注意:节点2和节点3需要修改broker.id和listeners两个配置

新建日志目录(每个节点操作)

mkdir -p /data/kafka/logs

4. 配置环境变量

将kafka加入环境变量,方便后期启动。三个节点均需配置。

vi /etc/profile # 尾部添加export KAFKA_HOME=/data/kafka_2.13-3.9.1export PATH=$KAFKA_HOME/bin:$PATH# 使配置文件生效source /etc/profile

5. 启动 Kafka

kafka-server-start.sh -daemon /data/kafka_2.13-3.9.1/config/server.properties

三台机器依次启动Kafka。可以看到kafka进程已正常启动。

四、测试验证

1. 创建 Topic

kafka-topics.sh --create --topic test \--bootstrap-server node1:9092,node2:9092,node3:9092 \--partitions 3 --replication-factor 3

参数解析:

--partitions 3:分区数,决定并发度。 --replication-factor 3:副本数,保证容错能力。

2. 查看 Topic

kafka-topics.sh --list --bootstrap-server node1:9092

3. 生产消息

kafka-console-producer.sh --broker-list node1:9092 --topic test> hello lige> hello kafka

4. 消费消息

kafka-console-consumer.sh --bootstrap-server node2:9092 --topic test --from-beginning

至此,集群搭建完成。

来源:https://www.51cto.com/article/824978.html
上一篇三星S25 Ultra双11直降2100元!7599元入手机皇 下一篇东风日产携手华为推天穹·鸿蒙座舱,加速燃油车智能化转型
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
OpenClaw手机App上线,结果翻车了
科技数码 · 2026-07-01

OpenClaw手机App上线,结果翻车了

OpenClaw 官方宣布,已正式推出 iOS 和 Android 原生移动 App,用户如今可以在手机上使用这款主打“能真正帮你做事”的个人 AI 助手。官方在 X 上给出的定位也很直接:把 Agent 放进口袋里,让用户可以在移动端处理频道消息、任务和回复。从功能上看,OpenClaw 移动端并

优必选CEO周剑:家庭机器人生态核心投入过半精力
科技数码 · 2026-07-01

优必选CEO周剑:家庭机器人生态核心投入过半精力

先说几个核心判断:优必选正在布局一盘长远战略。创始人兼CEO周剑在近期一场媒体沟通会上,直接亮出了公司未来的发展路线——工业、商用、家庭陪伴机器人三条业务主赛道并行推进,现阶段每条线各占约一半精力。一边是已经能够稳定创造收入的工业场景,另一边则是他眼中“最具想象力与未来空间”的家庭陪伴领域。工业人形

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛
科技数码 · 2026-07-01

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛

6月30日,申银万国在光连接系列研报中重点指出,MPO光连接器领域的投资机会值得高度关注。通俗来说,随着AI算力集群持续扩张,光互联升级带来的连锁效应——数据中心光纤通道数量、前面板端口密度、机柜内光纤管理复杂度——均在同步攀升。光连接器的角色早已超越传统的低价值标准件,如今它直接决定着链路插损、可

龙岗AR实景剧本游内测体验短板有效破解之道
科技数码 · 2026-07-01

龙岗AR实景剧本游内测体验短板有效破解之道

在今年龙岗区第二届人工智能与机器人发展大会上,区级部门一次性推出了7个AI“龙搭子”。其中,名为“龙导游”的成果成为文商旅融合领域的核心亮点。据南都N视频记者了解,依托“龙导游”打造的全区全域AR实景剧本游“龙岗大陆”,已在今年五一假期发布了内测版本。经过一个月市场验证后,该项目正式启动面向全社会的

南下资金6月30日净买入中芯国际与建滔积层板
科技数码 · 2026-07-01

南下资金6月30日净买入中芯国际与建滔积层板

6月30日,南下资金持续大举买入港股,单日净流入金额高达58 95亿港元。接下来,我们直接盘点哪些个股获得资金青睐、哪些遭到减持: 净买入方面,中芯国际领跑全场,单日吸金19 33亿港元;建滔积层板紧随其后,净买入10 59亿港元;腾讯控股获得7 65亿港元净流入;智谱(02513 HK)也有6 5