什么时候消费记录被“消费”了

dauxcl2d  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(709)

我正在阅读《Kafka:最终指南》,其中有一节指出,启用自动提交的轮询将提交上次轮询中返回的偏移量。我对投票的实质很好奇,想确认这是最后一次投票还是现在的投票,于是开始四处挖掘。似乎偏移提交是基于 ConsumerRecord 被消耗掉了,对代码的挖掘不断深入到拦截器之类的东西。然而,我仍然没有一个明确的答案,是当前的民意测验,即将返回的承诺还是最后一个?现在我对这方面很好奇。如果我从不重复 ConsumerRecords 通过轮询返回,它们是否仍会被标记为已消费并因此自动提交?

tvokkenx

tvokkenx1#

有时候,在挖掘并写下一个问题之后,我相信我意识到了,然后自己验证了答案。根据这个kafkaconsumer代码,当前批次在传递出去时自动标记为已消耗 poll :

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

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

相关问题