gpt4 book ai didi

apache-kafka - KafkaConsumer 位置()与提交()?

转载 作者:行者123 更新时间:2023-12-04 08:03:07 25 4
gpt4 key购买 nike

我不明白 javadoc 中的 KafkaConsumer position() 和mitted() 方法之间的区别。

position: public long position(TopicPartition partition) Get the offset of the next record that will be fetched (if a record with that offset exists).

committed: Get the last committed offset for the given partition (whether the commit happened by this process or another). This offset will be used as the position for the consumer in the event of a failure. This call will block to do a remote call to get the latest committed offsets from the server.



这是否意味着如果从偏移量 101 到 150 获取的 consumer.poll() 假设有 50 条消息,并且消费者具有手动偏移量提交。消费者仍在处理这 50 条消息,所以最后提交的偏移量是 100。现在 commited() 将返回 100,但位置将返回 151(因为消息 101 到 150 已经被获取)?

最佳答案

对,那是正确的。

当您 poll() 时,位置会自动更新或 seek()并对应于消费者收到的最新消息偏移量。

提交位置是指客户端在调用提交(手动或自动)中使用的最新偏移量。

例如,您可以让消费者禁用自动提交,并且永远不会手动调用提交。在这种情况下,提交的位置永远不会改变,而位置会随着客户端接收消息而更新。

关于apache-kafka - KafkaConsumer 位置()与提交()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47543771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com