Spring Kafka中检测broker断开连接

2024-04-05

我正在尝试为我的卡夫卡消费者编写健康检查。当应用程序启动并运行时,我关闭 Kafka,我看到很多

 Connection to node 1001 (/127.0.0.1:9092) could not be established. Broker may not be available.

在日志中,但没有应用程序事件,调用了错误处理程序,什么也没有。似乎无法通过侦听器调用来获取 NetworkClient 状态。我的理解是,当代理断开连接时,通常会生成一个 ApplicationEvent 。我错过了什么吗?


不幸的是,kafka 客户端没有向调用者提供代理已关闭的指示。

这些是唯一可用的事件:https://docs.spring.io/spring-kafka/docs/current/reference/html/#events https://docs.spring.io/spring-kafka/docs/current/reference/html/#events

您可以启用ListenerContainerIdleEvent但您无法判断容器是处于空闲状态还是未连接。

但是,您可以使用Consumer如果要进行一些非破坏性调用,例如获取endOffsets()对于分配的主题。如果调用超时,您将收到异常。看这个答案 https://stackoverflow.com/questions/67329014/when-using-kafkalistener-how-can-i-check-that-a-topic-message-has-been-read-to/67334374#67334374举个例子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Kafka中检测broker断开连接 的相关文章

随机推荐