Kafka Docker配置报错:未为监听器PLAINTEXT定义安全协议
修复Bitnami Kafka Docker启动错误
问题原因
错误提示No security protocol defined for listener PLAINTEXT的核心原因是:你在KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP中定义的监听器名称是CLIENT和EXTERNAL,但在KAFKA_CFG_LISTENERS和KAFKA_CFG_ADVERTISED_LISTENERS中却使用了PLAINTEXT作为监听器名称,两者不匹配,导致Kafka无法找到对应监听器的安全协议配置。
修复后的docker-compose配置
version: "3.9" services: zookeeper: image: 'bitnami/zookeeper:latest' ports: - '2181:2181' environment: - ALLOW_ANONYMOUS_LOGIN=yes kafka: image: 'bitnami/kafka:latest' ports: - '9092:9092' - '9093:9093' environment: - KAFKA_BROKER_ID=1 - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT - KAFKA_CFG_LISTENERS=CLIENT://:9092,EXTERNAL://:9093 - KAFKA_CFG_ADVERTISED_LISTENERS=CLIENT://127.0.0.1:9092,EXTERNAL://localhost:9093 - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 - ALLOW_PLAINTEXT_LISTENER=yes - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=CLIENT - KAFKA_ZOOKEEPER_PROTOCOL=PLAINTEXT depends_on: - zookeeper
关键修改点
- 将
KAFKA_CFG_LISTENERS中的PLAINTEXT://:9092改为CLIENT://:9092,与KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP中定义的监听器名称保持一致 - 将
KAFKA_CFG_ADVERTISED_LISTENERS中的PLAINTEXT://127.0.0.1:9092改为CLIENT://127.0.0.1:9092,确保对外声明的监听器名称与映射配置匹配
这样修改后,Kafka就能正确识别每个监听器对应的安全协议,启动时不会再出现该错误。
内容的提问来源于stack exchange,提问作者user4981459
相关产品推荐
相关产品推荐

