服务器 > 服务器 > 云虚拟主机

Docker快速搭建Kafka集群及测试的技术指南

43人参与 2025-04-24 云虚拟主机

前言 apache

kafka是一款高吞吐量的分布式消息系统,配合zookeeper可实现集群化部署。本文通过docker容器技术,​3分钟快速搭建3节点kafka集群并完成消息生产消费测试。

一、环境准备

​系统要求:linux/macos(windows需安装docker desktop)

​docker版本:建议使用20.10+

​网络配置:确保2181(zookeeper)、9092-9094(kafka)端口开放

二、安装zookeeper服务

1. 拉取镜像

docker search zookeeper      # 查看可用镜像
docker pull wurstmeister/zookeeper  # 拉取官方推荐镜像

2. 启动容器

docker run -d --name zookeeper \
  -p 2181:2181 \
  -t wurstmeister/zookeeper

三、搭建kafka集群

1. 拉取kafka镜像

docker search kafka --limit=50  # 查找镜像
docker pull wurstmeister/kafka  # 拉取镜像

2. 启动3个broker节点

注意:将下方所有xxx替换为服务器真实ip地址

# broker 0(端口9092)
docker run -d --name kafka0 \
  -p 9092:9092 \
  -e kafka_broker_id=0 \
  -e kafka_zookeeper_connect=xxx:2181 \
  -e kafka_advertised_listeners=plaintext://xxx:9092 \
  -e kafka_listeners=plaintext://0.0.0.0:9092 \
  wurstmeister/kafka

# broker 1(端口9093)
docker run -d --name kafka1 \
  -p 9093:9093 \
  -e kafka_broker_id=1 \
  -e kafka_zookeeper_connect=xxx:2181 \
  -e kafka_advertised_listeners=plaintext://xxx:9093 \
  -e kafka_listeners=plaintext://0.0.0.0:9093 \
  wurstmeister/kafka

# broker 2(端口9094)
docker run -d --name kafka2 \
  -p 9094:9094 \
  -e kafka_broker_id=2 \
  -e kafka_zookeeper_connect=xxx:2181 \
  -e kafka_advertised_listeners=plaintext://xxx:9094 \
  -e kafka_listeners=plaintext://0.0.0.0:9094 \
  wurstmeister/kafka

3. 验证集群状态

docker ps  # 应显示4个容器(1个zookeeper + 3个kafka)

四、测试消息生产与消费

测试准备

打开两个终端窗口,分别执行以下操作:

窗口1:生产者(发送消息)

# 进入任意kafka容器
docker exec -it kafka0 /bin/bash

# 进入脚本目录(注意版本号可能不同)
cd /opt/kafka_2.13-2.7.0/bin

# 启动生产者并创建test主题
./kafka-console-producer.sh \
  --broker-list localhost:9092 \
  --topic test

窗口2:消费者(接收消息)

# 进入同一kafka容器
docker exec -it kafka0 /bin/bash

# 进入脚本目录
cd /opt/kafka_2.13-2.7.0/bin

# 启动消费者
./kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test \
  --from-beginning

测试结果

五、关键参数说明

环境变量作用
kafka_broker_id节点唯一标识(集群内不可重复)
kafka_zookeeper_connectzookeeper服务地址
kafka_advertised_listeners对外暴露的访问地址
kafka_listeners容器内部监听地址

六、常见问题排查

1. 连接超时

检查服务器安全组/防火墙是否开放端口

确认ip地址是否正确替换

2. 消费者无数据

添加–from-beginning参数读取历史消息

检查topic是否创建成功:

./kafka-topics.sh --list --bootstrap-server localhost:9092

3. 容器启动失败

查看日志定位问题:

docker logs -f kafka0

以上就是docker快速搭建kafka集群及测试的技术指南的详细内容,更多关于docker搭建kafka集群的资料请关注代码网其它相关文章!

(0)

您想发表意见!!点此发布评论

推荐阅读

Docker安装Oracle创建表空间并导入数据库完整步骤

04-24

idea使用docker插件一键部署项目的操作方法

04-24

Docker如何更换镜像源提高拉取速度

04-24

Windows系统下装Docker至D盘/其他盘最新方法(最准确,直接装)

04-24

Docker使用、容器迁移的方案详解

04-24

将Docker数据迁移到新磁盘的操作指南

04-24

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论