Files
compose-anything/src/kafka/README.zh.md
2025-11-08 21:57:17 +08:00

3.4 KiB
Raw Blame History

Apache Kafka

English | 中文

此服务用于部署 Apache Kafka一个分布式流处理平台同时包含 Zookeeper 和可选的 Kafka UI。

服务

  • zookeeper:用于 Kafka 协调的 Zookeeper 服务
  • kafkaKafka 代理服务
  • 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_dataZookeeper 数据目录
  • zookeeper_logZookeeper 日志目录
  • kafka_dataKafka 数据目录

使用方法

  1. 启动 Kafka 和 Zookeeper

    docker compose up -d
    
  2. 启动并包含 Kafka UI可选

    docker compose --profile ui up -d
    
  3. 访问 Kafka UIhttp://localhost:8080(如已启用)

测试 Kafka

  1. 创建主题:

    docker exec kafka kafka-topics --create --topic test-topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 1
    
  2. 列出主题:

    docker exec kafka kafka-topics --list --bootstrap-server localhost:9092
    
  3. 生产消息:

    docker exec -it kafka kafka-console-producer --topic test-topic --bootstrap-server localhost:9092
    
  4. 消费消息:

    docker exec -it kafka kafka-console-consumer --topic test-topic --from-beginning --bootstrap-server localhost:9092
    

配置

  • Kafka 默认配置为单节点部署
  • 生产环境请考虑调整副本因子和其他设置
  • 可通过环境变量添加自定义 Kafka 配置

安全提示

  • 此配置用于开发/测试目的
  • 生产环境请启用 SSL/SASL 身份验证
  • 保护 Zookeeper 通信安全
  • 定期更新 Kafka 版本以获取安全补丁