如何使用Spring Kafka检查Kafka是否为空

时间:2019-03-30 11:17:15

标签: apache-kafka spring-kafka

当我重新启动应用程序时,我需要处理Kafka中的其余消息,直到其为空为止,然后我的应用程序应继续正常运行。我的问题是如何检查Kafka是否为空。我正在使用Spring Kafka。

谢谢

2 个答案:

答案 0 :(得分:0)

设置idleEventInterval容器属性,您可以侦听ListenerContainerIdleEvents,该时间间隔内每次未收到记录时将发布PropTypes.shape

  

虽然高效,但异步使用者的一个问题是检测它们何时处于空闲状态。如果一段时间内没有邮件到达,您可能需要采取一些措施。

     

您可以将侦听器容器配置为在一段时间没有消息传递的情况下发布ListenerContainerIdleEvent。在容器处于空闲状态时,每隔idleEventInterval毫秒发布一次事件。

答案 1 :(得分:0)

您可以简单地向具有唯一标识符或特殊类型(例如type: RESTART)的主题发送特殊的“重新启动”消息,并配置您的Kafka侦听器以在(例如,通过单独的Kafka主题)通知您的应用程序。收到“重新启动”消息。