apache-kafka - 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.
解决方案
我在 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
这个合流页面也会有所帮助。
推荐阅读
- regex - 如何在 MongoDb 上查询字段不包含字符串
- c# - 仅将 ReSharper 配置为为非原始类型推荐“var”?
- wordpress - WordPress 白屏或 https 上的内存限制
- c# - 使用授权标头重定向到操作
- xamarin.forms - 仅适用于 iOS 真实设备的 Xamain.Forms 中 api 调用的任务取消异常
- javascript - Ref 只获取最后一个元素 - VueJS
- php - Clarifai 搜索(curl)如何在每次调用中获取更多图像
- java - JDateChooser 上的 propertychangelistener 会额外触发 2 次,即使在以编程方式设置日期时分离了侦听器也是如此
- sharepoint - PowerApps 库未为用户显示 SharePoint 数据
- java - 为什么我的原始类型参数方法不覆盖包装器类型参数超类方法?