Docker快速搭建Kafka集群及测试的技术指南
作者:开拖拉机的小鑫
Kafka是一款高吞吐量的分布式消息系统,配合Zookeeper可实现集群化部署,本文将通过Docker容器技术快速搭建3节点Kafka集群并完成消息生产消费测试,感兴趣的可以了解下
前言 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
测试结果
- 生产者窗口输入任意文本(如Hello Kafka!)
- 消费者窗口将实时显示接收的消息
五、关键参数说明
环境变量 | 作用 |
---|---|
KAFKA_BROKER_ID | 节点唯一标识(集群内不可重复) |
KAFKA_ZOOKEEPER_CONNECT | Zookeeper服务地址 |
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集群的资料请关注脚本之家其它相关文章!