【问题标题】:Spring-Boot and Kafka : How to handle broker not available?Spring-Boot 和 Kafka:如何处理不可用的代理?
【发布时间】:2019-01-18 12:33:07
【问题描述】:

当 spring-boot 应用程序运行时,如果我完全关闭代理(kafka 和 zookeeper ),我会在控制台中看到这个警告,持续时间无限。

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

Spring Boot 有没有办法优雅地处理这个问题,而不是控制台上的无限日志?

【问题讨论】:

  • 我相信这些是 kafka 库日志,当消费者或生产者启动时,它会尝试在每个时间间隔内识别代理
  • 增加reconnect.backoff.ms

标签: java spring spring-boot apache-kafka spring-kafka


【解决方案1】:

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

默认只有50ms。

【讨论】:

  • 谢谢,我们将如何处理更长的代理中断,而不是这种不断的后退?
  • 这对于 Kafka 的人来说确实是一个问题,因为它超出了 Spring 的控制范围。幸运的是,发生这种情况时,新的 2.0.0 kafka-clients 不再阻塞(由将于 9 月底/10 月初发布的 spring-kafka 2.2 提供支持,2.2..0.M1 里程碑现已推出)。从 Spring 的角度来看,您将能够 stop() 消息侦听器容器。话虽如此,对于 Kafka(多个副本)的整个弹性模型,其意图是永远不要“关闭”代理。
猜你喜欢
  • 2019-11-15
  • 2021-01-01
  • 2021-08-31
  • 1970-01-01
  • 2021-05-06
  • 2017-03-08
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多