首页 > 解决方案 > java.lang.IllegalArgumentException,同时将 SASL_PLAINTEXT 身份验证添加到 kafka 代理

问题描述

我正在尝试为 kafka 代理配置 SASL_PLAINTEXT 身份验证,以下是我的配置。

advertised.listeners=SASL_PLAINTEXT://127.0.0.1:9092
listeners=SASL_PLAINTEXT://127.0.0.1:9092

security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
sasl.jaas.config=/var/lib/kafka/config/kafka_jaas.conf

启动zookeeper和kafka后,我遇到了异常

java.lang.IllegalArgumentException:要求失败:inter.broker.listener.name 必须是在 Advertisementd.listeners 中定义的侦听器名称。基于当前配置的侦听器的有效选项是 PLAINTEXT java.lang.IllegalArgumentException:要求失败:inter.broker.listener.name 必须是在 Advertisementd.listeners 中定义的侦听器名称。基于当前配置的侦听器的有效选项是 PLAINTEXT 在 scala.Predef$.require(Predef.scala:233) 在 kafka.server.KafkaConfig.validateValues(KafkaConfig.scala:1089) 在 kafka.server.KafkaConfig.(KafkaConfig.scala :1065) at kafka.server.KafkaConfig$.fromProps(KafkaConfig.scala:795) at kafka.server.KafkaConfig$.fromProps(KafkaConfig.scala:792) at kafka.server.KafkaServerStartable$.fromProps(KafkaServerStartable.scala:28 ) 在 kafka.Kafka$.main(Kafka.

标签: apache-kafkasasl

解决方案


我在 kubernetes 上设置 kafka_listeners 时遇到了类似的问题。以下是一个有效的 kafka 配置 yaml 片段:

    env:
    ...
   - name: ALLOW_PLAINTEXT_LISTENER
     value: “yes”
   - name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP
     value: INSIDE:PLAINTEXT
   - name: KAFKA_LISTENERS
     value: INSIDE://0.0.0.0:9092
   - name: KAFKA_ADVERTISED_LISTENERS
     value: INSIDE://localhost:9092
   - name: KAFKA_INTER_BROKER_LISTENER_NAME
     value: INSIDE

此处讨论的与 ssl 配置类似的问题:cant figure out setting for inter broker listener name in kafka with ssl

这个合流页面也会有所帮助。


推荐阅读