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

docker-compose启动Kafka时listener安全协议映射PLAINTEXT无效

Kafka Docker Compose 启动报错修复方案

核心报错触发原因

Invalid security protocol PLAINTEXT defined in listener.security.protocol.map 报错,根源来自配置语法错误、镜像配置错误、端口配置冲突三类问题,逐项修复即可。

逐项修复清单

  • 修正镜像配置错误
    原Kafka服务的镜像存在两处错误:

    • 镜像名拼写错误:onfluentinc 是拼写遗漏,正确的组织名是confluentinc
    • 镜像类型错误:原配置填的是Zookeeper专用镜像cp-zookeeper,Kafka节点需使用对应Kafka的镜像confluentinc/cp-kafka:latest
      若镜像配置错误,Kafka专属的环境变量无法被正确解析,会直接触发配置校验报错。
  • 删除已废弃的冗余配置
    以下两项是Kafka 2.0之前的老旧配置,在当前多监听者模式下完全冗余,且会和新的监听配置产生冲突,直接删除即可:

    • KAFKA_ADVERTISED_HOST_NAME=kafka-docker
    • KAFKA_ADVERTISE_HOST_PORT=9092
  • 修复环境变量的语法格式问题
    Docker Compose解析environment配置时,会自动保留等号两侧的多余空格,原配置里多处值前存在多余空格(比如KAFKA_LISTENERS= "xxx"、KAFKA_ADVERTISED_LISTENERS= INTERNAL1://xxx),会导致解析出的配置值带非法前置空格,进而让PLAINTEXT协议被识别为无效值。
    修正规则:所有包含特殊字符、逗号、冒号的配置值,去掉等号两侧的多余空格后,整体用英文双引号包裹。

  • 统一监听端口的配置
    原配置中内部监听的端口存在不一致问题:

    • KAFKA_LISTENERS里INTERNAL1绑定的是9090端口
    • KAFKA_ADVERTISED_LISTENERS里INTERNAL1广播的是9092端口
      同时端口映射只暴露了9092,9090端口既没有被容器监听也没有对外映射,会直接导致连接异常,调整为和暴露端口一致的9092即可。
      另外,对外提供服务的监听项(也就是EXTERNAL1),不要在KAFKA_LISTENERS里绑定localhost作为监听地址,需绑定0.0.0.0,否则容器内的服务无法正常接收宿主机器的连接请求。
  • 补全依赖的Zookeeper服务配置
    原配置里Kafka服务依赖了zookeeper服务,但没有在Compose里定义这个服务,会直接导致启动失败,需要新增对应的Zookeeper服务配置。

调整后可直接运行的完整配置

version: '3'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    environment:
      - ZOOKEEPER_CLIENT_PORT=2181
      - ZOOKEEPER_TICK_TIME=2000
  kafka-docker:
    image: confluentinc/cp-kafka:latest
    ports:
      - "9092:9092"
    depends_on:
      - zookeeper
    environment:
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENERS="INTERNAL1://kafka-docker:9092,EXTERNAL1://0.0.0.0:9092"
      - KAFKA_ADVERTISED_LISTENERS="INTERNAL1://kafka-docker:9092,EXTERNAL1://localhost:9092"
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP="INTERNAL1:PLAINTEXT,EXTERNAL1:PLAINTEXT"
      - KAFKA_INTER_BROKER_LISTENER_NAME="INTERNAL1"
      - KAFKA_CREATE_TOPICS="test:1:1"

内容的提问来源于stack exchange,提问作者Hasnain Ali Bohra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 22:27:03