从早期的偏移Apache Storm中读取

时间:2016-04-26 06:31:02

标签: apache-kafka apache-storm apache-zookeeper

我为Storm Pipeline设置了Kafka Spout。我不想从最新的偏移量或从头开始读取数据。有没有办法从可配置的偏移量中读取存储在zookeeper中的偏移量。 Storm为我们提供了从最新偏移或从头开始读取的方法。我不想要那种情况。

用例:偏移0部署的拓扑              偏移50改变了拓扑结构              偏移100检测到最近的拓扑有错误。想从偏移50开始。
我怎样才能实现同样的目标。

1 个答案:

答案 0 :(得分:0)

KafkaSpout将从zookeeper中读取最后提交的偏移量。如果zookeeper中没有偏移量,它将使用配置的startOffsetTime。 KafkaSpout的默认配置如下。

public long startOffsetTime = kafka.api.OffsetRequest.EarliestTime();

如果更改startOffsetTime的值并设置KafkaConfig.ignoreZkOffsets = true,我认为您可以让消费者从特定偏移量开始。
如果ignoreZkOffsets等于true,则spout将始终从KafkaConfig.startOffsetTime定义的偏移量开始读取,如上所述。

另外,看看这篇文章。 How do I accurately get offsets of messages for a certain timestamp using OffsetRequest?

Reference