4

Storm は動的トポロジをサポートしていますか? ここから必要な機能は、Storm トポロジの実行中にユーザーの要件に応じてトポロジを動的に変更することです。たとえば、ユーザーがストリームのトップ 10 の単語を知りたい場合は、トップ 10 のボルトを使用して処理し、ユーザーが何か他のことを知りたい場合は、別のボルトを使用してストリームを処理し、トップ10ボルト。

ストリームを分割するか、ストリームを複製し、常にすべての機能を実行して、必要なデータのみをデモするか、ストリームをシャットダウンして別のトポロジを更新することで実行できることはわかっていますが、「ホットプラグイン」の方法はありますかそれをするために?

4

4 に答える 4

4

Storm トポロジの構造を動的に変更することはできません。つまり、スパウトとボルトの配線を変更します。Storm トポロジの配線は常に静的です。

ただし、既に説明した他の方法で必要な機能を実装できます。IMHO、データ処理が大きく異なる場合に備えて、複数のトポロジを実行するのが最善の最も論理的な方法です。ただし、両方のケースでほとんどの処理が類似している場合は、ソース ストリームを複製し、同じトポロジの異なるブランチでデータを処理します。

于 2013-10-14T08:36:36.697 に答える
1

これを行う組み込みの方法はありません (1 つのボルトを別のボルトに切り替える) が、できることは、受信した入力に基づいて任意のコードを実行するボルトを作成することです。ストームで入力と出力が同じ構造 (同じタプルが発行される) である限り、理論的には実行時に必要なものをボルトで実行できます。これは、Clojure でボルトをビルドする場合は特に簡単ですが、Storm で使用できる基本的にすべての言語で可能です。

ただし、実行したいほとんどの計算には複数のボルトが含まれており、異なる構造のタプルを渡すのに適しているため、これはおそらくあまり意味がありません。schiavuzzi がすでに回答で述べているように、ストリームに対して実行したい複数の独立した計算がある場合は、複数のトポロジを実行する方がよいでしょう。

于 2013-10-15T14:34:45.557 に答える