版本 kafka_2.13-3.1.0
按照教程开启SASL_PLAIN 认证
参考教程:
https://www.orchome.com/10461
https://www.orchome.com/1960
config/kraft/server.properties
做了如下修改其他为默认配置:
node.id=1
delete.topic.enable=true
controller.quorum.voters=1@192.168.0.36:9093
controller.listener.names=CONTROLLER
log.dirs=/home/www/data/kafka_kraft
num.partitions=3
listeners=SASL_PLAINTEXT://192.168.0.36:9092,CONTROLLER://192.168.0.36:9093
inter.broker.listener.name=SASL_PLAINTEXT
advertised.listeners=SASL_PLAINTEXT://192.168.0.36:9092
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
执行如下命令是正常的
bin/kafka-console-producer.sh --broker-list 192.168.0.36:9092 --topic test --producer.config config/producer.properties
bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.36:9092 --topic test --from-beginning --consumer.config config/consumer.properties
执行如下命令就会提示错误,无法达到预期结果
bin/kafka-topics.sh --list --bootstrap-server 192.168.0.36:9092
bin/kafka-topics.sh --bootstrap-server 192.168.0.36:9092 --delete --topic test
提示如下信息:
INFO [SocketServer listenerType=BROKER, nodeId=1] Failed authentication with /192.168.0.36 (Unexpected Kafka request of type METADATA during SASLhandshake.) (org.apache.kafka.common.network.Selector)
请问各大神多多指教,帮忙解决该问题
如有描述不清或者其他问题还请多指教
执行命令前,先执行:
export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf"
export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka/config/kraft/kafka_client_jaas.conf" bin/kafka-topics.sh --list --bootstrap-server 192.168.0.36:9092
这样执行还是不行,提示下面的内容:
export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka/config/kraft/kafka_client_jaas.conf" bin/kafka-console-producer.sh --broker-list 192.168.0.36:9092 --topic test --producer.config config/producer.properties bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.36:9092 --from-beginning --topic test --consumer.config config/consumer.properties
执行这样发送消息,消费消息是没问题的,可以正常收发。
消费者和生产者明显都有引入配置文件。
只能从 JAAS 文件加载 SASL 凭证。 其他客户端设置必须通过配置文件提供。 你还可以通过配置文件提供 SASL 凭据:
比如,创建一个文件
config.properties
,内容如下。sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="USER" password="PASSWORD"; security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN
然后运行
kafka-topics.sh
就可以了:注意,使用 SASL_PLAINTEXT 时,您的凭据将通过网络以明文形式发送。 您应该启用 SSL 来加密客户端和代理之间的通信。
非常感谢大佬 已经可以操作了
采纳吧
你的答案