4.8. アドレスおよびキューの自動作成および削除
アドレスおよびキューを自動的に作成し、使用されなくなったら削除するようにブローカーを設定できます。これにより、クライアントが接続する前に各アドレスを事前に設定する必要がなくなります。
4.8.1. 自動キュー作成および削除用の設定オプション
次の表は、キューとアドレスを自動的に作成および削除するように address-setting
要素を設定するときに使用できる設定要素を示しています。
address-setting を下記に設定する場合 | この設定を追加してください |
---|---|
クライアントが存在しないアドレスにマッピングされたキューからメッセージを消費するか、消費しようとするとアドレスを作成します。 |
|
クライアントがキューからメッセージを消費するか、消費しようとするとキューを作成します。 |
|
キューがなくなったら、自動的に作成されたアドレスを削除します。 |
|
キューのコンシューマー 0 と 0 のメッセージがある場合に、自動作成されたキューを削除します。 |
|
クライアントが指定しない場合は、特定のルーティングタイプを使用します。 |
|
4.8.2. アドレスおよびキューの自動作成および削除の設定
以下の手順では、アドレスおよびキューの自動作成および削除を設定する方法を説明します。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 自動作成および削除のための
address-setting
を設定します。以下の例では、前述の表に記載されているすべての設定要素を使用しています。<configuration ...> <core ...> ... <address-settings> <address-setting match="activemq.#"> <auto-create-addresses>true</auto-create-addresses> <auto-delete-addresses>true</auto-delete-addresses> <auto-create-queues>true</auto-create-queues> <auto-delete-queues>true</auto-delete-queues> <default-address-routing-type>ANYCAST</default-address-routing-type> </address-setting> </address-settings> ... </core> </configuration>
address-setting
-
address-setting
要素の設定は、ワイルドカードアドレスactivemq.#
にマッチするすべてのアドレスまたはキューに適用されます。 auto-create-addresses
- クライアントが存在しないアドレスへの接続を要求すると、ブローカーはアドレスを作成します。
auto-delete-addresses
- 自動作成されたアドレスは、キューに関連付けられなくなった時点で削除されます。
auto-create-queues
- クライアントが存在しないキューへの接続を要求すると、ブローカーはキューを作成します。
auto-delete-queues
- 自動作成されたキューは、コンシューマーまたはメッセージがないと削除されます。
default-address-routing-type
-
クライアントが接続時にルーティングタイプを指定しない場合、ブローカーはアドレスにメッセージを配信する際に
ANYCAST
を使用します。デフォルト値はMULTICAST
です。
関連情報
詳細情報:
- アドレスの設定時に使用できるワイルドカード構文。「アドレスセットへのアドレス設定の適用」 を参照してください。
- ルーティングタイプについては、「アドレス、キュー、およびルーティングタイプ」 を参照してください。
4.8.3. プロトコルマネージャーおよびアドレス
protocol manager と呼ばれるコンポーネントは、AMQ Broker アドレスモデル、キューおよびルーティングタイプで使用される概念にプロトコル固有の概念をマッピングします。特定の状況下では、プロトコルマネージャーが自動的にブローカー上にキューを作成することがあります。
例えば、クライアントが /house/room1/lights
と /house/room2/lights
のアドレスを持つ MQTT サブスクリプションパケットを送信した場合、MQTT プロトコルマネージャーは、この 2 つのアドレスが multicast
セマンティクスを必要とすることと理解します。そのため、プロトコルマネージャーはまず、両方のアドレスで multicast
が有効になっていることを確認します。そうでない場合は、動的に作成を試みます。成功した場合、プロトコルマネージャーは、クライアントによって要求されたサブスクリプションごとに特別なサブスクリプションキューを作成します。
各プロトコルの動作は若干異なります。以下の表は、様々なタイプの queue
へのサブスクライブフレームが要求されたときに、典型的に起こることを説明しています。
キューがこのタイプのものである場合 | プロトコルマネージャーの通常のアクションは下記の通りです。 |
---|---|
永続性のあるサブスクリプションキュー |
適切なアドレスを検索し、 特別な名前を使用すると、プロトコルマネージャーは、必要なクライアントのサブスクリプションキューを迅速に特定し、クライアントの接続を解除し、後で再接続できるようにします。 クライアントがキューのサブスクライブを解除すると、キューが削除されます。 |
一時サブスクリプションキュー |
適切なアドレスを検索し、 クライアントがキューを切断すると、キューが削除されます。 |
ポイントツーポイントキュー |
適切なアドレスを探し、 キューが自動作成されると、コンシューマーがなく、メッセージがなければ自動的に削除されます。 |