我知道配置kafka以从最早或最新的消息中读取。 如果我需要读取先前的偏移量,我们如何包含一个附加选项? 我需要这样做的原因是,由于先前处理逻辑中的某些错误,需要再次处理先前读取的消息。
答案 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来声明我的起点。
一旦成功且可靠,我会尝试更新我的发现。当然这是一个已解决的问题。