消费者记录何时"consumed"



我正在阅读Kafka:权威指南,其中有一节指出,启用自动提交的轮询将提交上次轮询中返回的偏移量。我对细节很好奇,想验证这是最后一次民意调查与当前民意调查,所以开始四处挖掘。偏移提交似乎基于是否消耗了ConsumerRecord,并且对代码的深入研究会更深入地了解拦截器之类的东西。但是,我仍然没有明确的答案,是即将返回的当前民意调查还是最后一次民意调查?现在我对这个消费方面很好奇。如果我从不迭代通过轮询返回的ConsumerRecords,它们是否仍会被标记为已使用并因此自动提交?

有时在

挖掘然后写下问题后的情况,我相信我意识到了,然后自己验证了答案。根据此 KafkaConsumer 代码,当前批处理在从poll传递时会自动标记为已消耗:

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

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

最新更新