java.lang.IllegalArgumentException,同时将SASL_PLAINTEXT身份验证添加到kafka代理

时间:2019-05-07 19:20:11

标签: apache-kafka sasl

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

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必须是在中定义的侦听器名称   广告。有效选项基于当前配置   侦听器是PLAINTEXT java.lang.IllegalArgumentException:   要求失败:inter.broker.listener.name必须是侦听器名称   在advertised.listeners中定义。有效选项基于当前   配置的监听器是PLAINTEXT       在scala.Predef $ .require(Predef.scala:233)在kafka.server.KafkaConfig.validateValues(KafkaConfig.scala:1089)在   kafka.server.KafkaConfig。(KafkaConfig.scala:1065)在   kafka.server.KafkaConfig $ .fromProps(KafkaConfig.scala:795)在   kafka.server.KafkaConfig $ .fromProps(KafkaConfig.scala:792)在   kafka.server.KafkaServerStartable $ .fromProps(KafkaServerStartable.scala:28)     在kafka.Kafka $ .main(Kafka.scala:58)在   kafka.Kafka.main(Kafka.scala)

1 个答案:

答案 0 :(得分:0)

我在 kubernetes 上设置 kafka_listener 时遇到了类似的问题。以下是一个有效的 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

还有 this confluence 页面会很有帮助。