什么是ConsumerRecord"消费"

时间:2018-04-11 06:01:30

标签: apache-kafka

我正在阅读Kafka:The Definitive Guide,并且有一节说明启用了自动提交的轮询将提交上次轮询中返回的偏移量。我很好奇这个细节,想要证实这是最后一次民意调查,而不是当前的民意调查,所以开始挖掘。似乎偏移提交是基于ConsumerRecord是否被消耗,并且挖掘代码继续深入到拦截器和诸如此类的东西。但是,我仍然没有明确回答当前即将返回的民意调查还是最后一次民意调查?现在我对这个消费方面感到好奇。如果我从不迭代轮询返回的ConsumerRecords,它们是否仍会被标记为已消耗并因此自动提交?

1 个答案:

答案 0 :(得分:0)

有时候在挖掘然后写出一个问题之后,我相信我已经意识到并且然后自己验证了答案。每this KafkaConsumer code个当前批次在poll传出时自动标记为已消耗:

return this.interceptors.onConsume(new ConsumerRecords<>(records));

自动提交在此之前完成,所以它确实是最后一次提交的轮询。