7.8. マルチキャストキューを持つアドレスでの注意

マルチキャストキューがバインドされているアドレス (Topic の JMS サブスクリプションなど) にメッセージがルーティングされた場合は、メッセージのコピーはメモリー内に 1 つだけ存在します。各キューは参照のみを処理します。このため、メモリーは、メッセージを参照するすべてのキューがメッセージを配信した後のみ解放されます。

1 つのレイジー (遅延) サブスクリプションがある場合、ページングシステム上の追加のストレージを介して送信されたメッセージがすべてのキューにあるため、アドレス全体が IO パフォーマンスの影響を受けます。

以下に例を示します。

  • アドレスにはキューが 10 個ある
  • キューの 1 つがメッセージを配信しません (低速なコンシューマーが原因です)。
  • メッセージはアドレスに継続的に到達し、ページングが開始されます。
  • メッセージが送信された場合でも、他の 9 キューは空です。

この例では、他のすべての 9 キューはページシステムからメッセージを消費します。これにより、これが望ましくない状態である場合にパフォーマンスの問題が発生する可能性があります。