Kafka 多次消费同一条消息

Kafka consuming same messge multiple times

我正在 kafka 队列中排队一条消息。

Kafka 支持:

enable.auto.commit=true
auto.commit.interval.ms=5000
max.poll.interval.ms=30000

处理我的消息大约需要 10 分钟。所以消息每 5 分钟就会继续处理一次。

然后我把道具max.poll.interval.ms改成了20分钟。现在问题已解决。 但我的问题是:为什么会这样。由于我已经启用了自动提交并且它应该每 5 秒发生一次,那么为什么在前一种情况下我的消息没有被标记为已提交

enable.auto.commit 设置为 true 时,每 auto.commit.interval.ms 次提交最大偏移量。但是,只有在调用 poll() 时才会发生这种情况。在每次民意调查中,在您的情况下,每 20 分钟 (max.poll.interval.ms),检查 enable.auto.commit。每当您 poll() 时,消费者都会检查是否到了提交它在上次轮询中返回的偏移量的时间。

现在,在您的情况下,每 20 分钟调用一次 poll(),这意味着在提交偏移量之前甚至可能需要额外的 20 分钟(+5000 毫秒)。