我们有一个使用 spring-kafka (2.2.5.RELEASE) 的 Spring Boot 应用程序,在启动时总是出现此错误:
Could not configure topics
org.springframework.kafka.KafkaException: Timed out waiting to get existing
topics; nested exception is java.util.concurrent.TimeoutException
但是,应用程序继续启动:
org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1]
INFO o.s.k.l.KafkaMessageListenerContainer - partitions revoked: []
INFO o.s.k.l.KafkaMessageListenerContainer - partitions assigned: [my-reply-topic-1]
INFO o.s.k.l.KafkaMessageListenerContainer - partitions assigned: [my-request-topic-0]
INFO o.s.b.w.e.tomcat.TomcatWebServer -
Tomcat started on port(s): 8080 (http) with context path ''
此时,应用程序已按预期与 Kafka 进行交互。
我们希望保持日志干净,因此我们想了解为什么会抛出此异常。另外,这有点令人困惑,因为当我们转移到应用程序和 kafka 代理之间尚未建立网络的不同环境时,我们会得到相同的错误,但应用程序无法运行。当确实存在问题并且可以忽略它时,在尝试解决连接问题时出现相同的异常是令人厌烦的。
有没有办法在应用程序启动时确定是否已与 Kafka 建立连接,而不仅仅是等待超时消息(无论如何,这可能是一个转移注意力的消息)?
如果主题已存在,请删除任何主题NewTopic
来自应用程序上下文的 bean 和KafkaAdmin
根本不会尝试连接到代理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)