2016-04-26 31 views
0

我已經爲風暴管道設置了K​​afka Spout。我不想從最新的偏移量或從一開始就讀取數據。有沒有辦法從可配置的偏移量中讀取存儲在zookeeper中的偏移量。 Storm爲我們提供了從最新的偏移量或從一開始就讀取的方法。我不想要這種情況。從較早的偏移量讀取Apache Storm

使用案例:偏移0已部署拓撲。
偏移50改變了拓撲
偏移100檢測到最近的拓撲有錯誤。想從偏移量50開始。
我怎樣才能達到相同的效果。

回答

0

KafkaSpout將從zookeeper讀取上次提交的偏移量。如果zookeeper中沒有偏移量,它將使用配置的startOffsetTime。 KafkaSpout的默認配置如下。

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

如果更改startOffsetTime的價值,並設置KafkaConfig.ignoreZkOffsets =真,我想你可以從特定的偏移消費者開始。
如果ignoreZkOffsets等於true,則噴口將始終開始從KafkaConfig.startOffsetTime定義的偏移量讀取,如上所述。

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

Reference

相關問題