You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitnami Kafka 3.4容器启动失败:需配置CONTROLLER监听器

Kafka容器启动失败问题排查与解决

问题描述

我原本有一个正常运行的Kafka开发环境,服务器意外重启后无法正常工作。清理所有Docker容器尝试重新部署,依然无法启动。

我的docker-compose.yml基于Bitnami Kafka模板修改了端口和监听器配置,获取模板的命令如下:

curl -sSL https://raw.githubusercontent.com/bitnami/containers/main/bitnami/kafka/docker-compose.yml > docker-compose.yml

最终配置内容:

version: "2"

services:
  kafka:
    container_name: "kafka1"
    image: docker.io/bitnami/kafka:3.4
    networks:
      - "kafka_network"
    ports:
      - "29092:29092"
    volumes:
      - "kafka_data:/bitnami"
    environment:
      - KAFKA_CFG_LISTENERS=EXTERNAL_SAME_HOST://0.0.0.0:29092,INTERNAL://0.0.0.0:9092
      - KAFKA_CFG_ADVERTISED_LISTENERS=EXTERNAL_SAME_HOST://localhost:29092,INTERNAL://kafka1:9092
      - ALLOW_PLAINTEXT_LISTENER=yes

volumes:
  kafka_data:
    driver: local

networks:
  kafka_network:
    name: "kafka_network"

执行docker compose up -d后容器启动失败,日志中出现警告:

...
WARN KAFKA_CFG_LISTENERS must include a listener for CONTROLLER
...

此前我曾询问Kafka的listeners和advertised.listeners配置字符串是否可自定义,当时的回答未明确解析逻辑,但也未否定自定义可能性。现在我困惑的点在于:启动失败要求配置特定的CONTROLLER监听器,且新版本docker-compose.yml未提及Zookeeper,猜测Zookeeper是否已被弃用,不确定是否是近期变更导致的问题。


问题根源

  • 部署Kafka的Docker服务器意外重启
  • 重启时自动拉取了Bitnami Kafka 3.4的更新镜像
  • 该更新镜像默认启用Kraft模式(不再依赖Zookeeper)
  • 原有docker-compose.yml配置未适配默认模式变更,导致失效

解决方案

  • Bitnami Kafka 3.4镜像近期更新后,默认使用Kraft替代Zookeeper
  • 如需回退到Zookeeper模式,在docker-compose.yml的环境变量中添加:KAFKA_ENABLE_KRAFT=no

内容的提问来源于stack exchange,提问作者user2138149

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 19:35:34