メッセージ・フローを設計する際、組み込みノードの柔軟性と豊富さのゆえに、処理を実行して必要な最終結果を得る方法が通常いくつもあります。
ただし、これらのさまざまなソリューションは、パフォーマンスが異なっているかもしれず、パフォーマンスが重要な事項である場合には、機能だけでなくパフォーマンスも考慮に入れて設計する必要があります。
次の 2 つの方法によって、ご使用のアプリケーションのパフォーマンスを識別できます。
- 応答時間。
これは、各メッセージがメッセージ・フローによって処理される速度を示します。
これは特に、メッセージ・フローをどのように設計したかによって影響を受けます。
応答時間については、このトピックでさらに解説されます。
- スループット。
これは、指定された時間内に特定サイズのメッセージをいくつ、メッセージ・フローが処理できるかを示します。
これは主に、構成およびシステム・リソースの要因によって影響されるので、他のドメイン構成情報と共にメッセージ・フロー・スループットの最適化で解説されています。
メッセージ・フロー応答時間に影響を与えるいくつかの局面があります。
ただし、ユーザーの特定のビジネス要件に合い、かつ最良の結果を得られるように、メッセージ・フロー設計を作成および変更する際には、メッセージ・フローの最終的な複雑さをも考慮する必要があります。
最も効率的なメッセージ・フローが必ずしも、最も分かりやすく最も保守しやすいとは限りません。使用可能なもののうち、自分の要件に最適なソリューションを試してください。
以下のいくつかの要因が、メッセージ・フローの応答時間に影響を与えます。
- メッセージ・フローに組み込むノード数
- どのノードもいくらかの処理オーバーヘッドを引き起こします。したがって、サブフローの使用も含め、メッセージ・フローの内容を注意深く検討してください。
メッセージ・フローに使用するノードをできるだけ少なくしてください。メッセージ・フローに組み込むノードはすべて、ブローカー内のオーバーヘッドを増加させます。
単一フロー内のノードの数には上限があります。この限度はシステム・リソース (特にスタック・サイズ) によって制御されます。
スタック・サイズについての詳細は、メッセージ・フローの開発に関するシステム考慮事項を参照してください。
- 持続およびトランザクション・メッセージの使用
- 持続メッセージはメッセージ・フローの処理中、ディスクに保管されます。
入力と出力の一方または両方のメッセージを非持続に指定できる場合には、このことは行われません。
ご使用のメッセージ・フローが非持続メッセージだけを処理する場合には、ノードの構成およびメッセージ・フロー自体を調べてください。
メッセージが非持続である場合には、トランザクション・サポートは不必要であるかもしれません。
いくつかのノードのデフォルト構成は、トランザクション処理を強制します。
これらのプロパティーを更新して、メッセージ・フローを再デプロイすれば、応答時間が改善されることがあります。
- メッセージ・サイズ
- メッセージが大きいほど、処理時間が長くなります。
大きなメッセージをより小さい情報のチャンクに分割できる場合には、メッセージ・フローの処理速度を改善できるかもしれません。
メッセージ・フローのパフォーマンスを改善する方法についての詳細は、メッセージ・フロー・パフォーマンスに関する developerWorks 記事を参照してください。