Kafka Consumer 配置 - auto.offset.reset 如何控制消息消费

Raj*_*Raj 6 apache-kafka

我试图了解 ConsumerConfig.auto.offset.reset = latest 如何影响消息消耗。

例如,我有一个消费者,最初在 t1 时间发送 100 条消息,然后我的消费者在 t1+30 秒启动并运行,然后我的消费者会消费 t1+30 秒后发布的消息还是会消费 t1 之后发布的消息?

Gar*_*ell 8

这取决于。

auto.offset.reset 仅适用于消费者组没有存储偏移量的情况。

它适用于以下条件:

  • 消费组第一次消费
  • 如果消费者没有提交任何偏移量,则下次启动时
  • 如果消费者组已过期(现代经纪人默认为 7 天)
  • 如果存储的偏移量指向的消息由于消息保留策略而被删除(尝试读取已清除的消息会触发规则的应用)

如果消费者提交了一个偏移量;下次启动时,它将从最后提交的偏移量开始。