首页 > 解决方案 > 消费者何时提交偏移量?

问题描述

我正在使用 spring-kafka-2.2.7-RELEASE。我正在使用@KafkaListener 创建我的消费者。

我已将 enable.auto.commit 设置为 true 并将 auto.commit.interval.ms 设置为 10,000(即 10 秒)。现在我的问题是 - 消费者是每条记录的提交偏移量还是它提交并通过它在 10 秒内消耗的记录数来推进偏移量?

标签: apache-kafkakafka-consumer-apispring-kafka

解决方案


我们一般不建议使用auto.commit.enabled=true; 让容器使用BATCHor RECORD AckModes 进行提交更具确定性(poll()分别在处理下一条记录之前或之后)。

在 2.3 版本中,我们默认禁用自动提交(除非在配置中明确设置)。

使用自动提交,我的理解是,poll()如果自上次轮询后间隔已过,则提交将在 a 期间发生。它将提交自上次提交以来先前处理过的每个分区的最新偏移量。


推荐阅读