4.8. アドレスおよびキューの自動作成および削除


アドレスおよびキューを自動的に作成し、使用されなくなったら削除するようにブローカーを設定できます。これにより、クライアントが接続する前に各アドレスを事前に設定する必要がなくなります。

4.8.1. 自動キュー作成および削除用の設定オプション

次の表は、キューとアドレスを自動的に作成および削除するように address-setting 要素を設定するときに使用できる設定要素を示しています。

表4.3 キューとアドレスを自動的に作成および削除するための設定要素
address-setting を下記に設定する場合この設定を追加してください

クライアントが存在しないアドレスにマッピングされたキューからメッセージを消費するか、消費しようとするとアドレスを作成します。

auto-create-addresses

クライアントがキューからメッセージを消費するか、消費しようとするとキューを作成します。

auto-create-queues

キューがなくなったら、自動的に作成されたアドレスを削除します。

auto-delete-addresses

キューのコンシューマー 0 と 0 のメッセージがある場合に、自動作成されたキューを削除します。

auto-delete-queues

クライアントが指定しない場合は、特定のルーティングタイプを使用します。

default-address-routing-type

4.8.2. アドレスおよびキューの自動作成および削除の設定

以下の手順では、アドレスおよびキューの自動作成および削除を設定する方法を説明します。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. 自動作成および削除のための 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 へのサブスクライブフレームが要求されたときに、典型的に起こることを説明しています。

表4.4 さまざまなキュータイプに対するプロトコルマネージャーのアクション
キューがこのタイプのものである場合プロトコルマネージャーの通常のアクションは下記の通りです。

永続性のあるサブスクリプションキュー

適切なアドレスを検索し、multicast セマンティクスが有効化されていることを確認します。次に、クライアント ID で特別なサブスクリプションキューとアドレスをその名前として、multicast をルーティングタイプとして作成します。

特別な名前を使用すると、プロトコルマネージャーは、必要なクライアントのサブスクリプションキューを迅速に特定し、クライアントの接続を解除し、後で再接続できるようにします。

クライアントがキューのサブスクライブを解除すると、キューが削除されます。

一時サブスクリプションキュー

適切なアドレスを検索し、multicast セマンティクスが有効化されていることを確認します。そして、このアドレスの下に、ランダムな (UUID と呼ばれる) 名前のキューを、multicast のルーティングタイプで作成します。

クライアントがキューを切断すると、キューが削除されます。

ポイントツーポイントキュー

適切なアドレスを探し、anycast ルーティングタイプが有効になっていることを確認します。存在する場合は、アドレスと同じ名前のキューを見つけることを目的としています。存在しない場合は、利用可能な最初のキューを探します。キューは存在しない場合は自動的に作成されます (これにより、自動作成が有効になっています)。キューコンシューマーはこのキューにバインドされます。

キューが自動作成されると、コンシューマーがなく、メッセージがなければ自動的に削除されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.