【问题标题】:Spring Kafka consumer often stop consume message from topic sometimesSpring Kafka消费者有时经常停止消费来自主题的消息
【发布时间】:2022-10-23 18:21:53
【问题描述】:

我正在使用 spring kafka 依赖项来构建一个 kafka 消费者来使用来自主题的消息。它经常突然停止消费消息,并且日志中没有任何错误。如果我重新启动服务,它可以正常消费消息。但它可能会在某个时刻再次停止消费消息。

无法在最大轮询间隔内消费消息,因为每条消息将在 1 分钟内处理完毕,默认的最大轮询间隔为 5 分钟。而且消息发布的频率非常低,每分钟1-2条左右。

有人遇到过这个问题吗?我该如何解决?

【问题讨论】:

    标签: java spring apache-kafka


    【解决方案1】:

    我是否正确理解您的消费者在提交之前可能需要一分钟来处理消息?这是阻塞操作吗?

    我怀疑问题可能是没有发送心跳。您的消费者有一个向 Kafka 代理发送心跳的线程。默认情况下,每heartbeat.interval: 3s 发生一次。如果您的消费者正忙于发送心跳,代理可能会认为它在session.timeout.ms: 45s(旧版本中为30s)之后已经死亡。特别是在 Java 中,我看到消费者的负载如此之高,以至于在实践中发生了这种情况。

    如果是这种情况

    1. 您应该会在经纪人告诉您消费者离开了消费者组的日志
    2. 您可以尝试增加session.timeout.ms。唯一的缺点是,检测实际故障需要更长的时间。

    【讨论】:

      猜你喜欢
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 2020-12-12
      • 2018-07-21
      • 2019-01-10
      相关资源
      最近更新 更多