2016-04-25 4 views
0

私はストームスパウトとしてApache Kafkaを使用します。 私はカフカからのメッセージを受け取り、これらのメッセージを処理し、それらをカフカに送り返します。ストームを使用してメッセージを再生した後、カフカで注文を続ける

私は同じ順序でメッセージを保存できるのだろうかと思います。すなわち

topic01:A、B、C - >嵐 - > topic02:A_、B_、C_

私は秩序を維持しようとする1口と1本のボルトを使用しますが、それは動作しません。 OpaqueTridentKafkaSpoutも試しましたが、依頼は変わりました。

この問題を解決するソリューションはありますか? ありがとうございます。

答えて

0

カフカはパーティション内での注文のみを保証します。パーティションIDにfieldsGroupingを使用し、結果トピックの同じパーティションに結果を書き込むと、Storm内のパーティションごとにこの順序を維持できます。

+0

はい!パーティションの数を1に変更すると、その注文を保存できます。そして私のカフカの噴出口でどのようにパーティションIDを取得する必要がありますか? –

+0

私は 'KafkaSpout'のコードを調べました。これは内部的に変数 '_currPartitionIndex'を使用していました - この情報にアクセスするには' KafkaSpout'にパッチを当てる必要があります。アクセスするAPIはありません。 –

関連する問題