Spring应用程序未因超时异常而终止

时间:2019-05-22 03:26:06

标签: spring-boot spring-kafka spring-cloud-stream

我创建了一个Spring Boot应用程序,以将消息发布到Kafka队列。为此,我使用Spring Cloud Stream和Kafka活页夹作为依赖项。问题是由于默认配置,如果我的应用关闭了2分钟,我的应用程序就一直在尝试连接到Kafka代理。 我使用以下属性减少了该时间,并将其设置为1000 ms并获得了超时异常  spring.kafka.properties.request.timeout.ms:1000。 但是,我的spring应用程序在异常发生后仍在运行。如果卡夫卡经纪人无法连接,我希望它失败。我已经为该spring.kafka.admin.fail-fast=true尝试了另一个属性,但该应用程序仍在运行。 我还尝试搜索Spring Cloud Stream和Kafka活页夹的某些属性,如果Kafka代理不可用但找不到与此相关的任何内容,我可以将其设置为使我的应用程序失败。 请帮我。

请参阅以下异常日志。

Caused by: java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
        at org.apache.kafka.common.internals.KafkaFutureImpl.wrapAndThrow(KafkaFutureImpl.java:45)
        at org.apache.kafka.common.internals.KafkaFutureImpl.access$000(KafkaFutureImpl.java:32)
        at org.apache.kafka.common.internals.KafkaFutureImpl$SingleWaiter.await(KafkaFutureImpl.java:104)
        at org.apache.kafka.common.internals.KafkaFutureImpl.get(KafkaFutureImpl.java:274)
        at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.createTopicAndPartitions(KafkaTopicProvisioner.java:351)
        at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.createTopicIfNecessary(KafkaTopicProvisioner.java:325)
        at org.springframework.cloud.stream.binder.kafka.provisioning.KafkaTopicProvisioner.createTopic(KafkaTopicProvisioner.java:302)
        ... 33 common frames omitted
Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
2019-05-22 06:06:25 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Successfully started bean 'outputBindingLifecycle'
2019-05-22 06:06:25 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Starting beans in phase 2147482647
2019-05-22 06:06:25 [main] DEBUG o.s.c.s.binding.BindableProxyFactory - Binding inputs for :interface kafka.stream.RXXXStreams
2019-05-22 06:06:25 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Successfully started bean 'inputBindingLifecycle'
2019-05-22 06:06:25 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Starting beans in phase 2147483547
2019-05-22 06:06:25 [main] DEBUG o.s.c.s.DefaultLifecycleProcessor - Successfully started bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'
2019-05-22 06:06:25 [main] DEBUG o.s.b.a.l.ConditionEvaluationReportLoggingListener -

1 个答案:

答案 0 :(得分:0)

您是否有spring-boot-web库作为依赖项?如果是这种情况,您的应用程序将不会退出。完整的日志也将非常有帮助。