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

至此,集群搭建完成。
相关攻略
今天分享一下如何搭建一套zookeeper+Kafka的消息队列集群。虽然Kafka在新版本已经可以不通过zookeeper就可以实现高可用,但是企业中大多数还是zookeeper+Kafka这个黄
Netflix从Tudum移除Kafka的决定,不是拒绝Kafka,而是选择合适复杂度的水平。这鼓励所有开发者、架构师和工程领导审视自己的系统:你是否在轻量工具就能搞定的地方用了重型工具? 大家好,
在事件自动化领域工作了几年,并与处于事件流不同阶段的公司合作后,我发现将事件管理作为混合集成战略的一部分,可以帮助解决这些常见挑战。以下是我收集到的四个关键见解。 事件管理作为混合集成战略的一部分,
豆包ai可通过信息整理与参数建议助力kafka性能优化。1 从基础配置入手,ai可快速理清关键参数如num partitions、replication factor等,并解释其
智能家居控制软件实现多设备同步管理的核心在于构建统一通信协议、智能化场景编排与实时状态同步机制。1 首先通过设备抽象层标准化不同品牌设备,使其拥有统一属性和行为;2 其次依赖中央网
热门专题
热门推荐
任天堂吉祥物马里奥的宿敌酷霸王解析:为何这位反派深受喜爱?宫本茂通过电影揭示角色深层魅力 谈到任天堂的经典形象,马里奥与酷霸王这对宿敌的组合可谓深入人心。一边是永不放弃拯救碧姬公主的英雄,另一边则是不断制造混乱的恶棍,故事框架虽简单却历经三十余年依然人气不减。但仔细品味,酷霸王这个角色颇为值得玩味:
洛克王国神圣狮鹫图鉴:揭秘悬崖之王的飞行奥秘 当冒险者们踏上洛克王国的高耸悬崖,便能感受到猛烈的疾风。呼啸而过的气流远超平地的强度,然而正是这片常年不息的风域,成为了狮鹫一族最卓越的自然训练场。在这个独特的环境中,它们锤炼出了对抗强风与复杂气流的顶级飞行技巧,其背后的生存智慧,实在值得探险者们深入探
4月2日消息,三星电子最新表示,自2019年起连续七年位居全球第一。根据三星援引的市场调研公司IDC数据,2025年三星电子在全球游戏电竞显示器市场的收入占比达到18 9%。从销量来看,2025年三
内存市场因为人工智能高带宽内存的蓬勃需求而陷入供应紧张,传统内存也因大量产线被占用而供不应求。在这种大背景下,苹果似乎采取了一种争议性的商业手段,来进一步扩大其市场份额。据韩国消息人士透露,苹果公司
4月6日消息,近期内存市场风声鹤唳,现货价格小幅回调就引发了内存价格崩盘”的论调,甚至带动相关个股集体下跌,但行业龙头三星却完全不为所动,反而按计划继续上调DRAM内存产品价格,用实际行动打破了市场





