消费者何时提交补偿?

时间:2019-11-08 15:01:27

标签: apache-kafka kafka-consumer-api spring-kafka

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

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

1 个答案:

答案 0 :(得分:2)

我们通常建议不要使用auto.commit.enabled=true;让容器对BATCHRECORD AckMode进行提交更具确定性(分别在下一个poll()之前或在处理每个记录之后)。

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

对于自动提交,我的理解是,如果自上次轮询以来间隔已经过去,则提交将在poll()期间进行。自上次提交以来,它将为之前已处理的每个分区提交最新的偏移量。