質問

私は4つのUNIXノードにまたがって分散環境で実行されている嵐のトポロジを持っています。

私はメッセージを受信してから、RAWメッセージを解析してオブジェクトを作成するParsebobotに転送するJMSSpoutを持っています。

待ち時間を測定するために私のJMSSpoutは現在時刻を値として発行し、その後Parseboboltがこれを受け取ると現在時刻が再び得られ、違いが待ち時間として違います。

このアプローチを使用すると、まったく聞こえない200以上のMSが見えます。誰かがこれがなぜなのかについてのアイデアを持っていますか?

役に立ちましたか?

解決

おそらくスレッドの問題です。Stormは、すべてのスパウトNextTuple()呼び出しのために同じスレッドを使用し、NextTuple()呼び出しが終了するまで処理されずに処理されません。NextTuple()メソッドを繰り返し呼び出す非常にタイトなループもあり、NextTuple()実装で少なくとも短いスリープを入れない場合は多くのサイクルを消費することができます。

睡眠を加えて(10)を試して、NextTuple()ごとに1つのタプルのみを発してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top