Spring Boot和Kafka:Broker断开连接。

3
我已经设置了一个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 明确地作为生产者或消费者命令的参数传递。
鉴于我正在侦听现有的Kafka代理和主题,因此无法在那里更改任何设置。任何更改都必须在Spring Boot端进行。
是否可以配置application.yml以便将--security-protocol SSL 作为参数传递给使用者?此外,是否有人经历过这种情况,并且是否有其他方法可以使用Spring Boot和Spring Kafka中可用的配置选项来解决该问题?
谢谢

1
请上传代码。 - Tal Avissar
你可以外部启动Kafka和Zookeeper(而不是作为嵌入式)。 - Tal Avissar
Kafka实例和Zookeeper是外部的,而不是嵌入式的。代码和配置基于上述资源。同时在我的之前的问题中有记录:https://stackoverflow.com/questions/48667097/unable-to-consume-kafka-messages-within-spring-boot。谢谢。 - user1052610
1个回答

3

请参阅文档

向下滚动至Kafka。可以使用以下方式设置任意Kafka属性:

spring:
  kafka:
    properties:
      security.protocol: SSL

适用于消费者和生产者(2.0版本中还包括管理员)。

在即将推出的2.0版本(目前是RC1),还有:

spring:
  kafka:
    properties:
      consumer:
        some.property: foo

对于只适用于消费者的属性(同样适用于生产者和管理员)。


日志显示:org.apache.kafka.common.network.InvalidReceiveException: 无效的接收(大小=369296128,大于104857600)。 - user1052610
在Spring Boot配置中是否有类似于批处理大小属性的东西? - user1052610
看起来您的经纪人没有配置SSL; 如果我在客户端上设置SSL,使用非SSL代理商会得到相同的错误 [2018-02-12 11:04:45,700] WARN Unexpected error from /127.0.0.1; closing connection (org.apache.kafka.common.network.Selector) org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 369296128 larger than 104857600) - Gary Russell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接