3.4 KiB
3.4 KiB
Apache Kafka
此服务用于部署 Apache Kafka,一个分布式流处理平台,同时包含 Zookeeper 和可选的 Kafka UI。
服务
zookeeper:用于 Kafka 协调的 Zookeeper 服务kafka:Kafka 代理服务kafka-ui:可选的 Kafka 管理 Web UI(配置文件:ui)
环境变量
| 变量名 | 说明 | 默认值 |
|---|---|---|
KAFKA_VERSION |
Kafka 镜像版本 | 7.8.0 |
KAFKA_UI_VERSION |
Kafka UI 镜像版本 | latest |
ZOOKEEPER_CLIENT_PORT_OVERRIDE |
Zookeeper 主机端口映射(映射到端口 2181) | 2181 |
KAFKA_BROKER_PORT_OVERRIDE |
Kafka 主机端口映射(映射到端口 9092) | 9092 |
KAFKA_JMX_PORT_OVERRIDE |
JMX 主机端口映射(映射到端口 9999) | 9999 |
KAFKA_UI_PORT_OVERRIDE |
Kafka UI 主机端口映射(映射到端口 8080) | 8080 |
KAFKA_NUM_PARTITIONS |
自动创建主题的默认分区数 | 3 |
KAFKA_DEFAULT_REPLICATION_FACTOR |
默认副本因子 | 1 |
KAFKA_AUTO_CREATE_TOPICS_ENABLE |
启用自动创建主题 | true |
KAFKA_DELETE_TOPIC_ENABLE |
启用主题删除 | true |
KAFKA_LOG_RETENTION_HOURS |
日志保留时间(小时) | 168 |
KAFKA_LOG_SEGMENT_BYTES |
日志段大小(字节) | 1073741824 |
KAFKA_HEAP_OPTS |
Kafka 的 JVM 堆选项 | -Xmx1G -Xms1G |
KAFKA_UI_READONLY |
将 Kafka UI 设置为只读模式 | false |
请根据实际需求修改 .env 文件。
卷
zookeeper_data:Zookeeper 数据目录zookeeper_log:Zookeeper 日志目录kafka_data:Kafka 数据目录
使用方法
-
启动 Kafka 和 Zookeeper:
docker compose up -d -
启动并包含 Kafka UI(可选):
docker compose --profile ui up -d -
访问 Kafka UI:
http://localhost:8080(如已启用)
测试 Kafka
-
创建主题:
docker exec kafka kafka-topics --create --topic test-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1 -
列出主题:
docker exec kafka kafka-topics --list --bootstrap-server localhost:9092 -
生产消息:
docker exec -it kafka kafka-console-producer --topic test-topic --bootstrap-server localhost:9092 -
消费消息:
docker exec -it kafka kafka-console-consumer --topic test-topic --from-beginning --bootstrap-server localhost:9092
配置
- Kafka 默认配置为单节点部署
- 生产环境请考虑调整副本因子和其他设置
- 可通过环境变量添加自定义 Kafka 配置
安全提示
- 此配置用于开发/测试目的
- 生产环境请启用 SSL/SASL 身份验证
- 保护 Zookeeper 通信安全
- 定期更新 Kafka 版本以获取安全补丁