我不理解javadoc中的KafkaConsumer position()和commited()方法之间的区别。
这是否意味着如果获取的consumer.poll()让50条消息从偏移量101变为150,并且消费者具有手动偏移量提交。并且使用者仍在处理这50条消息,因此最后一个提交的偏移量是100。现在,commited()将返回100,但是位置将返回151(已经获取到消息101到150)。
最佳答案
对,那是正确的。
当您使用poll()
或seek()
时,位置会自动更新,并且对应于消费者已收到的最新消息偏移量。
promise 头寸是指客户在一次委托(delegate)提交中使用的最新偏移量(手动或自动)。
例如,您可能有一个禁用了自动提交的使用者,而且从不手动调用提交。在这种情况下,提交的职位将永远不会改变,而职位将在客户端接收消息时进行更新。
关于apache-kafka - KafkaConsumer position()vs commited()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47543771/