Spring-Boot和Kafka:如何处理不可用的经纪人?

Ram*_*mar 5 java spring apache-kafka spring-boot spring-kafka

在spring-boot应用程序运行时,如果我完全关闭了代理(kafka和zookeeper),我会在控制台中看到此警告时间很长。

[org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1]警告o.apache.kafka.clients.NetworkClient-[Consumer clientId = consumer-1,groupId = ResponseReceiveConsumerGroup]无法建立与节点2147483647的连接。经纪人可能不可用。

Spring Boot中是否有一种方法可以优雅地处理此问题,而不是在控制台上无限处理日志?

Gar*_*ell 3

增加reconnect.backoff.ms属性(参见Kafka 文档)。

默认仅为 50 毫秒。

  • 对于 Kafka 人员来说,这确实是一个问题,因为它不受 Spring 的控制。幸运的是,当这种情况发生时,新的 2.0.0 kafka-clients 不再阻塞(由将于 9 月底/10 月初发布的 spring-kafka 2.2 支持,2.2..0.M1 里程碑现已可用)。从 Spring 的角度来看,您将能够“stop()”消息侦听器容器。话虽这么说,对于 Kafka 的整个弹性模型(多个副本),其目的是代理永远不应该“宕机”。 (2认同)