我有一个 Spring 应用程序,它使用 Kafka 实例,无需任何身份验证。
现在情况发生了变化,Kafka 脱离了应用程序并作为集群运行。我收到了 Kafka 凭证用户名和密码以及主机名:端口信息。
连接到 Kafka 集群需要哪些其他信息。
是否需要更改代码?或者我只需要在 application-profile.yaml 文件中添加一些信息?
我尝试了 Google 中建议的不同方法,但似乎对我不起作用,我不断得到:
Error:
Opening socket connection to server X1.X2.X3.X4/X1.X2.X3.X4:2181. Will not attempt to authenticate using SASL (unknown error)
hequeue:
#To use local kafka, update use-mock-queue to false and add local zkservers and metadata-broker-list
use-mock-queue: false
zkservers: X1.X2.X3.X4:2181,Y1.Y2.Y3.Y4:2181,Z1:Z2:Z3:Z4:2181
metadata-broker-list: X1.X2.X3.X4:9092,Y1.Y2.Y3.Y:9092,Z1:Z2:Z3:Z4:9092
properties:
sasl:
jaas:
config: org.apache.kafka.common.security.scram.ScramLoginModule required username='ANKIT' password='KOTAK';
mechanism: SCRAM-SHA-256
kerberos:
service:
name: kafka
security:
protocol: SASL_SSL
最佳答案
以下是我们如何使用 spring kafka 的示例配置之一。如果匹配,您可以尝试:
spring:
kafka:
bootstrap-servers:
consumer:
properties:
isolation.level:
ssl.truststore.location:
ssl.truststore.password:
security.protocol: SASL_SSL
sasl.mechanism: GSSAPI
sasl.kerberos.service.name:
producer:
properties:
ssl.truststore.location:
ssl.truststore.password:
security.protocol: SASL_SSL
sasl.mechanism: GSSAPI
sasl.kerberos.service.name:
admin:
properties:
ssl.truststore.location:
ssl.truststore.password:
security.protocol: SASL_SSL
sasl.mechanism: GSSAPI
sasl.kerberos.service.name: kafka
关于java - 如何在 Spring 应用程序中添加 SASL 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55544812/