私のStormトポロジでは、ストリームの処理中に、将来のある時点までいくつかのメッセージの処理を遅らせたいと考えています。これを行うための合理的なオプションは何ですか?Stormの遅延キュー/メッセージ処理
これまでのところ、私は次のことについて考えています
- Javaの
Thread.sleep
を使用しました。 (ただし、いくつかの議論を踏まえ、これは効率的に嵐のリソースを利用するための推奨方法ではありません。) - が遅れたキューを使用して...
- 特に、java.util.concurrent.DelayQueueを試してみてください。
- 他にも試してみる価値のある実装はありますか?
- 私は見落としたメッセージを遅らせるためにいくつかのAPIを持っていますか?
- ZeroMQはStorm(変更された場合)が利用できる遅延メッセージングAPIを提供しますか?
あなたはこれをやりたい理由をいくつか考えていただけますか?あなたがこのようなものを処理する準備ができていないなら、なぜそれをあなたの嵐のトポロジに渡して始めますか? –
私の最初の応答:なぜなぜ尋ねるのですか?質問を理解したり答えたりすることは重要ですか?タプルの遅延(または再スケジューリング)が便利な理由はたくさんあります。私のタプル処理は、純粋にデータの機能的な変換に関するものではありません。私の場合、タプルを処理するには、システム外の状態をキャプチャし、他のストリームと統合する必要があります。時間の経過とともに変化するので、私は制御された間隔でその状態を捕捉したい。そのような要件の1つは、外部リソースをあまりにも頻繁に消費することではありません。 –