我正在尝试在Kafka使用者API中使用OffsetCommitRequest for 0.9,它包含在以下包中: org.apache.kafka.common.requests.OffsetCommitRequest
如何发送此请求?使用它的理想方法是什么? 我想在卡夫卡本身提出补偿。我没有找到任何与0.9版相关的文档。其中大部分可用于0.8.x
此外,此请求的构造函数还需要生成id,成员ID和保留时间。这些领域是什么?
答案 0 :(得分:3)
如果您想手动提交偏移量,也许您应该设置消费者属性
enable.auto.commit=false
并使用kafka consumer的commitSync()或commitAsync()方法。 例如,您可以在处理完所有ConsumerRecords后调用commitSync()。 或者您甚至可以在每次收到ConsumerRecord之后提交您想要的TopicPartition。像这样:
Map<TopicPartition, OffsetAndMetadata> offsetMap = new HashMap<>();
offsetMap.put(new TopicPartition(someTopic, somePartition), new OffsetAndMetadata(someOffset));
kafkaConsumer.commitSync(offsetMap);