docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker搭建Kafka集群

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

测试结果

五、关键参数说明

环境变量作用
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集群的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文