如何配置kafka使我们可以选择从最早的,最新的以及任何给定的偏移量中读取?

时间:2017-08-03 08:05:54

标签: apache-kafka message-queue offset kafka-python sequential-workflow

我知道配置kafka以从最早或最新的消息中读取。 如果我需要读取先前的偏移量,我们如何包含一个附加选项? 我需要这样做的原因是,由于先前处理逻辑中的某些错误,需要再次处理先前读取的消息。

2 个答案:

答案 0 :(得分:0)

在java kafka客户端中,有一些关于kafka使用者的方法可用于指定下一个消费位置。

  

public void 寻求(TopicPartition分区,           长偏移)

     

覆盖消费者在下次轮询(超时)时将使用的提取偏移量。如果多次为同一分区调用此API,则将在下一轮询()上使用最新的偏移量。请注意,如果在消费过程中任意使用此API,则可能会丢失数据,以重置提取偏移量

这就够了,还有seekToBeginning和seekToEnd。

答案 1 :(得分:0)

我正在尝试回答类似但不完全相同的问题,所以让我们看看我的信息是否可以帮到你。

首先,I have been working from this other SO question/answer

简而言之,您希望提交偏移量,最常见的解决方案是ZooKeeper。因此,如果您的消费者遇到错误或需要关闭,它可以从中断处继续。

我自己我正在使用非常大的高流量流,而我的消费者(用于测试)每次都需要从尾部开始。文档表明我必须使用KafkaConsumer seek来声明我的起点。

一旦成功且可靠,我会尝试更新我的发现。当然这是一个已解决的问题。