問題タブ [nservicebus7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
223 参照

nservicebus - NServiceBus 7 - 複数の連続したリクエストを送信する方法は?

NServiceBus と RabbitMQ を使用して複数の連続したリクエストを作成しようとしています。これが私のコードです

プログラムを実行すると、2 回目のリクエスト試行で次の例外が発生します。

コードを変更して Send メソッドを呼び出し、応答用のハンドラーを用意できることはわかっていますが、なぜそれが要求で機能しないのかはまだわかりません。機能させるにはどうすればよいですか?

2 番目の呼び出しで送信オプションを渡さずに、メッセージ ID を設定しようとしましたが、何も機能していないようです。これはバグかもしれないと思います。

動作を再現するサンプルプロジェクトを作成し、GitHub で共有しました。ここにリンクがあります。RabbitMQ インスタンスが必要であることを指摘することが重要です。私の場合、デフォルトのゲスト ユーザー/パスワードを使用してローカル ( http://localhost:15672 ) にセットアップしました。

0 投票する
1 に答える
158 参照

nservicebus - 負荷がかかった状態で NServiceBus Saga のパフォーマンスを改善する方法

私は、SQL Transport と NHibernate の永続性を使用して、NSB7 で構築された非常に単純な Saga を持っています。

Saga はキューでリッスンし、受信したメッセージごとに 4 つのハンドラーを実行します。これらは順番に呼び出され、2 つのハンドラーが並行して実行され、最後のハンドラーは両方の並行ハンドラーが完了すると実行されます。最後のハンドラーが DB にレコードを書き込みます

1 つのメッセージの場合、各ハンドラーに 1 秒かかるとします。Saga を開始する新しいメッセージを受信すると、予想される結果として、3 ~ 4 秒後にレコードが DB に書き込まれます。

キューが 1000 件のメッセージでバックアップされた場合、それらのメッセージが再び処理を開始すると、最後のハンドラーで新しいレコードが作成されるまでに約 2000 秒かかります。基本的に、メッセージごとに予想される 4 秒の処理時間を実行する代わりに、キューが空になるまで最初のハンドラーに効果的に集まり、次のハンドラーに対してそれを繰り返します。

負荷がかかっているときにこのシステムのパフォーマンスを改善して、メッセージの束や単一の新しいレコードが反対側に出る前に長い遅延が発生するのではなく、処理されたメッセージの一定のストリームが最後に出るようにする方法についてのアイデアはありますか?

感謝します