第4章 アドレス、キュー、およびトピック
AMQ Broker には、強力で柔軟性があり、優れたパフォーマンスを提供する独自のアドレス指定モデルがあります。アドレスモデルは、addresses、queues、およびrouting types の 3 つの主要な概念で構成されています。
アドレス はメッセージングエンドポイントを表します。設定内では、通常のアドレスには一意の名前、0 個以上のキュー、およびルーティングタイプが指定されます。
キューがアドレスに関連付けられます。アドレスごとに複数のキューが存在する場合があります。受信メッセージがアドレスにマッチすると、設定されたルーティングタイプに応じて、メッセージは 1 つ以上のキューに送信されます。キューは、自動作成および削除ができるように設定できます。また、アドレス (およびその関連付けられたキュー) を 永続 として設定できます。キューのメッセージも永続永続キューにある限り、永続キューのメッセージも永続し、ブローカーのクラッシュや再起動を保ち続けることができます。一方、非永続キューのメッセージは、メッセージ自体が永続的であっても、ブローカーのクラッシュや再起動は維持されません。
ルーティングタイプ は、アドレスに関連付けられたキューへメッセージが送信される方法を決定します。AMQ Broker アドレスは、2 つの異なるルーティングタイプで設定できます。
メッセージをルーティング先とルーティングする場合 | このルーティングタイプの使用... |
---|---|
ポイントツーポイント方式で、一致するアドレス内の単一キュー。 | anycast |
パブリッシュ/サブスクライブ方式で、一致するアドレス内のすべてのキュー。 | multicast |
アドレスには、少なくとも 1 つのルーティングタイプが必要です。
アドレスごとに複数のルーティングタイプを定義できますが、これは通常、パターンに反する結果になるため、推奨されません。
ただし、アドレスが両方のルーティングタイプを使用し、クライアントがどちらにも優先していない場合、ブローカーは通常、デフォルトで anycast
ルーティングタイプに設定されます。1 つの例外は、クライアントが MQTT プロトコルを使用する場合です。この場合、デフォルトのルーティングタイプは multicast
です。
4.1. アドレスおよびキューの命名要件
アドレスおよびキューを設定する場合は、以下の要件に注意してください。
クライアントが使用するワイヤプロトコルに関係なく、クライアントがキューに接続できるようにするには、アドレスおよびキュー名には以下のいずれの文字も含めないでください。
&
::
,
?
>
-
#
および*
文字は、ワイルドカード表現用に予約されています。詳細は、「AMQ Broker ワイルドカード構文」 を参照してください。 - アドレスおよびキュー名にはスペースを含めないでください。
-
アドレスまたはキュー名の単語を区切るには、設定された区切り文字 (デフォルトは
.
文字) を使用します。詳細は、「AMQ Broker ワイルドカード構文」 を参照してください。