2016-04-26 7 views
0

私はStorm PipelineのKafka Spoutをセットアップしました。私は最新のオフセットからでも最初からデータを読んでもいけません。 zookeeperに格納されているオフセットを設定可能なオフセットから読み取る方法はありますか?ストームは、最新のオフセットから、または最初から読み込む方法を提供します。私はその事件を望んでいない。以前のオフセットApache Stormからの読み込み

使用例:オフセット0配置トポロジ。
オフセット50がトポロジを変更しました
オフセット100は、最近のトポロジにバグがあることを検出します。オフセット50から始めたい。
どうすれば同じことができますか?

答えて

0

KafkaSpoutは、zookeeperから最後にコミットされたオフセットを読み込みます。飼い主にオフセットがない場合、設定されたstartOffsetTimeが使用されます。 KafkaSpoutのデフォルト設定は次のとおりです。

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

あなたがstartOffsetTimeの値を変更し、真のKafkaConfig.ignoreZkOffsets =を設定した場合、私はあなたが特定のオフセットから、消費者のスタートを切ることができると思います。
ignoreZkOffsetsがtrueの場合、spoutは常に上記のようにKafkaConfig.startOffsetTimeで定義されたオフセットから読み込みを開始します。

また、この記事をご覧ください。 How do I accurately get offsets of messages for a certain timestamp using OffsetRequest?

Reference