我已经设置了一个Spring Boot应用程序来接收来自现有和正在工作的Kafka制作人的Kafka消息。设置是标准设置,基于以下内容:https://www.codenotfound.com/spring-kafka-consumer-producer-example.html
未收到消息,并且控制台中会不断显示以下内容:
WARN org.apache.clients.NetworkClient :Bootstrap broker <hostname>:9092 disconnected
此外,还会记录以下调试消息:
org.apache.common.errors.Timeout: Failed to update metadata after 60000 ms.
以下链接讨论了控制台消息: https://community.hortonworks.com/content/supportkb/150148/errorwarn-bootstrap-broker-6668-disconnected-orgap.html
此处讨论了已记录的消息: https://community.cloudera.com/t5/Data-Ingestion-Integration/Error-when-sending-message-to-topic-in-Kafka/td-p/41440
很可能,第一个问题解决后不会发生超时。
给出的控制台消息的解决方案是将--security-protocol SSL
作为参数显式传递给producer或consumer命令。
鉴于我正在收听现有的Kafka经纪人和主题,因此无法更改任何设置。任何更改都必须在Spring Boot端。
是否可以配置application.yml
以便--security-protocol SSL
向消费者传递参数?此外,有没有人经历过这种情况,还有另一种方法可以使用Spring Boot和Spring Kafka中提供的配置选项解决问题吗?
由于
答案 0 :(得分:1)
向下滚动到卡夫卡。可以使用
设置任意Kafka属性spring:
kafka:
properties:
security.protocol: SSL
适用于消费者和生产者(以及2.0中的管理员)。
在即将发布的2.0版本(目前为RC1)中,还有
spring:
kafka:
properties:
consumer:
some.property: foo
表示仅适用于消费者的属性(对于生产者和管理员也类似)。