7.8. マルチキャストキューを持つアドレスでの注意
マルチキャストキューがバインドされているアドレス (Topic の JMS サブスクリプションなど) にメッセージがルーティングされた場合は、メッセージのコピーはメモリー内に 1 つだけ存在します。各キューは参照のみを処理します。このため、メモリーは、メッセージを参照するすべてのキューがメッセージを配信した後のみ解放されます。
1 つのレイジー (遅延) サブスクリプションがある場合、ページングシステム上の追加のストレージを介して送信されたメッセージがすべてのキューにあるため、アドレス全体が IO パフォーマンスの影響を受けます。
以下に例を示します。
- アドレスにはキューが 10 個ある
- キューの 1 つがメッセージを配信しません (低速なコンシューマーが原因です)。
- メッセージはアドレスに継続的に到達し、ページングが開始されます。
- メッセージが送信された場合でも、他の 9 キューは空です。
この例では、他のすべての 9 キューはページシステムからメッセージを消費します。これにより、これが望ましくない状態である場合にパフォーマンスの問題が発生する可能性があります。