【发布时间】:2019-10-05 21:16:37
【问题描述】:
我在使用 spring-boot-Kafka('spring-Kafka' -'2.2.7.RELEASE') 集成库访问我的 Kafka 的 spring-boot(2.1.7.RELEASE) 应用服务器中遇到问题话题。
当我的 Kafka 代理关闭时,我的应用程序无法启动。
这是我得到的:
2019-10-06 02:41:02.764 WARN -- [main ] org.apache.kafka.clients.NetworkClient [] : [Consumer clientId=consumer-1, groupId=caas] Connection to node -1 could not be established. Broker may not be available.
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-10-06 02:41:31.777 ERROR -- [main ] org.springframework.boot.SpringApplication [] : Application run failed
org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:185)
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53)
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360)
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158)
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:893)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:162)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:743)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:390)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1214)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1203)
at com.zinka.fmsclients.FmsClientsApplication.main(FmsClientsApplication.java:14)
Caused by: org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata
有没有办法绕过对 Kafka 代理的这种依赖?即使代理不可用/关闭,我也希望我的应用程序启动。代理启动后,应用服务器应该能够连接。
【问题讨论】:
标签: java spring-boot web-applications apache-kafka