手动在Java中提交Kafka偏移量

时间:2018-10-31 10:18:39

标签: java apache-kafka kafka-consumer-api

我遇到的情况(不要问)是我需要从外部服务提交给Kafka的偏移信息(主题,分区,偏移)。

创建KafkaConsumer对象并调用commitSync / commitAsync是唯一的方法吗?还是我错过了一种无需实例化KafkaConsumer即可进行提交的机制?由于我不会从此服务中消费任何东西,因此这似乎有些过分。

2 个答案:

答案 0 :(得分:1)

使用Java API时,我不知道没有使用者的情况下任意提交偏移量的方法。

您可以将kafka-consumer-groups工具与--reset-offsets选项一起使用,但是在封面下它将创建一个使用者。

几个第三方客户端(例如Sarama或kafka-python)允许发送原始请求。使用这样的客户端(或自定义Java客户端),您将能够直接发送CommitOffsetRequests。

答案 1 :(得分:1)

了解偏移量的责任在于kafka消费者。这是kafka架构固有的。使kafka如此出色的设计决策之一是,知道在哪一点消费数据是kafka消费者的责任。