Kafka - 如何在 springboot yml 文件中定义用户和密码?
Kafka - How to define user and password in springboot yml file?
我已经安装了 kafka 并将用户和密码定义为 SASL_PLAINTEXT 协议,我在控制台中做了一些示例,我可以向主题发送消息并使用它们各自的凭据接收这些消息,现在我需要在我的 spring 引导应用程序中复制该配置,
这是我的 application.yml 文件:
server:
port: 65498
spring:
kafka:
bootstrap-servers: ip:9092
properties:
security:
protocol: SASL_PLAINTEXT
sasl:
mechanism: PLAIN
jaas:
config: org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
producer:
value-serializer: org.apache.kafka.common.serialization.StringSerializer
应用程序启动良好,但当我尝试发送消息时它抛出以下错误:
org.apache.kafka.clients.NetworkClient : [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available.
我注意到的一件事是,如果我不在控制台中将 producer.properties 传递给生产者,它会抛出类似的错误:
WARN [Producer clientId=console-producer] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
有人可以帮我解决这个问题吗?,
提前致谢。
我找到了解决方案,我的错误是我在 kafka 的 server.properties 上将 advertised.listeners
定义为 SASL_PLAINTEXT://localhost:9092
所以我的客户尝试使用 localhost 进行连接,所以我更改了 localhost到主机 ip 并且它有效!
我已经安装了 kafka 并将用户和密码定义为 SASL_PLAINTEXT 协议,我在控制台中做了一些示例,我可以向主题发送消息并使用它们各自的凭据接收这些消息,现在我需要在我的 spring 引导应用程序中复制该配置,
这是我的 application.yml 文件:
server:
port: 65498
spring:
kafka:
bootstrap-servers: ip:9092
properties:
security:
protocol: SASL_PLAINTEXT
sasl:
mechanism: PLAIN
jaas:
config: org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
producer:
value-serializer: org.apache.kafka.common.serialization.StringSerializer
应用程序启动良好,但当我尝试发送消息时它抛出以下错误:
org.apache.kafka.clients.NetworkClient : [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available.
我注意到的一件事是,如果我不在控制台中将 producer.properties 传递给生产者,它会抛出类似的错误:
WARN [Producer clientId=console-producer] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
有人可以帮我解决这个问题吗?,
提前致谢。
我找到了解决方案,我的错误是我在 kafka 的 server.properties 上将 advertised.listeners
定义为 SASL_PLAINTEXT://localhost:9092
所以我的客户尝试使用 localhost 进行连接,所以我更改了 localhost到主机 ip 并且它有效!