03-Kafka Docker Compose 部署与版本说明
Kafka Docker Compose 部署与版本说明
创建时间:2026-02-27
一、Docker Compose 脚本逐行解析
version: '3.8' # Docker Compose 文件格式版本(固定写法,与 Kafka 无关)
services:
zookeeper 服务
zookeeper:
image: confluentinc/cp-zookeeper:7.5.0 # Confluent 打包的 ZooKeeper 镜像
environment:
ZOOKEEPER_CLIENT_PORT: 2181 # ZooKeeper 对外暴露的端口(Kafka 用来连接它)
ports:
- "2181:2181" # 宿主机:容器端口映射
kafka 服务
kafka:
image: confluentinc/cp-kafka:7.5.0 # Confluent 打包的 Kafka 镜像
depends_on:
- zookeeper # 必须等 ZooKeeper 启动后才启动 Kafka
ports:
- "9092:9092" # Kafka 默认端口
environment:
KAFKA_BROKER_ID: 1 # Broker 唯一标识(集群中每个节点 ID 不同)
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 # 告诉 Kafka 去哪找 ZooKeeper
# "zookeeper" 是上面服务的名称,Docker 内部 DNS 自动解析
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
# ⚠️ 重要:告诉外部客户端用哪个地址连接 Kafka
# localhost 表示你的本机,如果是服务器部署需要换成服务器 IP
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
# __consumer_offsets 这个内部 Topic 的副本数
# 单节点必须设为 1,否则 Kafka 启动会报错
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
# 生产者发送消息时,如果 Topic 不存在,自动创建
# 学习环境方便,生产环境建议关闭('false')
二、7.5.0 到底是什么版本的 Kafka?
镜像中的 7.5.0 是 Confluent Platform(CP)的版本号,不是 Apache Kafka 的版本号。
什么是 Confluent Platform?
Confluent 是 Kafka 创始团队离开 LinkedIn 后创办的公司,他们在 Apache Kafka 基础上做了商业封装,叫做 Confluent Platform,维护了自己独立的版本号体系。
Apache Kafka(开源,Apache 基金会维护) ← 两套独立的版本号
Confluent Platform(商业封装,包含 Kafka + 额外工具)
版本对应关系
| Confluent Platform 版本 | 内置 Apache Kafka 版本 |
|---|---|
| 7.5.x | Kafka 3.5.x ← 本脚本使用的版本 |
| 7.4.x | Kafka 3.4.x |
| 7.3.x | Kafka 3.3.x |
| 7.0.x | Kafka 3.0.x |
| 6.2.x | Kafka 2.8.x |
✅ 实际运行的是 Apache Kafka 3.5.x,不是官网看到的 4.x。
关于 Kafka 4.x 的重大变化
Kafka 4.x → 彻底移除了 ZooKeeper 依赖(使用 KRaft 模式替代)
Kafka 3.x → ZooKeeper 和 KRaft 都支持(过渡期)
本脚本还依赖 ZooKeeper,使用 3.5.x 是目前生产环境最主流的选择之一,完全没问题。
三、两种运行方式对比
| Confluent 镜像(本脚本) | 纯 Apache Kafka 镜像 | |
|---|---|---|
| 镜像名 | confluentinc/cp-kafka | apache/kafka |
| 额外工具 | Schema Registry、Kafka Connect 等 | 纯 Kafka |
| 学习推荐 | ✅ 够用 | ✅ 更原汁原味 |
四、完整 Docker Compose 脚本
version: '3.8'
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.5.0
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ports:
- "2181:2181"
kafka:
image: confluentinc/cp-kafka:7.5.0
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
启动命令
# 启动
docker compose up -d
# 查看运行状态
docker compose ps
# 查看 Kafka 日志
docker compose logs -f kafka
# 停止
docker compose down
总结:镜像里的 7.5.0 是 Confluent 自己的版本号,实际运行的 Kafka 内核是 3.5.x。Apache Kafka 官方最新是 4.x,两套版本号是独立体系,不要混淆。


💬 文章评论 (0)