我正在使用spring-kafka-2.2.7-RELEASE。我正在使用@KafkaListener来创建我的使用者。
我已将enable.auto.commit设置为true,并将auto.commit.interval.ms设置为10,000(即10秒)。现在,我的问题是-消费者是否为每条记录提交了提交偏移量,还是在10秒钟内通过消耗的记录数提交并提前了偏移量?
答案 0 :(得分:2)
我们通常建议不要使用auto.commit.enabled=true
;让容器对BATCH
或RECORD
AckMode
进行提交更具确定性(分别在下一个poll()
之前或在处理每个记录之后)。
在2.3版中,默认情况下我们会禁用自动提交(除非已在配置中明确设置)。
对于自动提交,我的理解是,如果自上次轮询以来间隔已经过去,则提交将在poll()
期间进行。自上次提交以来,它将为之前已处理的每个分区提交最新的偏移量。