4.8. アドレスおよびキューの自動作成および削除
アドレスおよびキューを自動的に作成し、使用されなくなったら削除するようにブローカーを設定できます。これにより、クライアントが接続する前に各アドレスを事前に設定する必要がなくなります。
4.8.1. 自動キュー作成および削除用の設定オプション リンクのコピーリンクがクリップボードにコピーされました!
次の表は、キューとアドレスを自動的に作成および削除するように address-setting 要素を設定するときに使用できる設定要素を示しています。
address-setting を下記に設定する場合 | この設定を追加してください |
|---|---|
| クライアントが存在しないアドレスにマッピングされたキューからメッセージを消費するか、消費しようとするとアドレスを作成します。 |
|
| クライアントがキューからメッセージを消費するか、消費しようとするとキューを作成します。 |
|
| キューがなくなったら、自動的に作成されたアドレスを削除します。 |
|
| キューのコンシューマー 0 と 0 のメッセージがある場合に、自動作成されたキューを削除します。 |
|
| クライアントが指定しない場合は、特定のルーティングタイプを使用します。 |
|
4.8.2. アドレスおよびキューの自動作成および削除の設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、アドレスおよびキューの自動作成および削除を設定する方法を説明します。
手順
-
<broker_instance_dir>/etc/broker.xml設定ファイルを開きます。 自動作成および削除のための
address-settingを設定します。以下の例では、前述の表に記載されているすべての設定要素を使用しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 へのサブスクライブフレームが要求されたときに、典型的に起こることを説明しています。
| キューがこのタイプのものである場合 | プロトコルマネージャーの通常のアクションは下記の通りです。 |
|---|---|
| 永続性のあるサブスクリプションキュー |
適切なアドレスを検索し、 特別な名前を使用すると、プロトコルマネージャーは、必要なクライアントのサブスクリプションキューを迅速に特定し、クライアントの接続を解除し、後で再接続できるようにします。 クライアントがキューのサブスクライブを解除すると、キューが削除されます。 |
| 一時サブスクリプションキュー |
適切なアドレスを検索し、 クライアントがキューを切断すると、キューが削除されます。 |
| ポイントツーポイントキュー |
適切なアドレスを探し、 キューが自動作成されると、コンシューマーがなく、メッセージがなければ自動的に削除されます。 |