4.2. Operator ベースのブローカーデプロイメントのアドレスおよびキューの設定


Operator ベースのブローカーのデプロイメントの場合、2 つの異なるカスタムリソース (CR) インスタンスを使用してアドレスおよびキューと関連する設定を行います。

  • ブローカーでアドレスおよびキューを作成するには、アドレスカスタムリソース定義 (CRD) に基づいて CR インスタンスをデプロイします。

    • OpenShift コマンドラインインターフェイス (CLI) を使用して Operator をインストールした場合、アドレス CRD は、ダウンロードした Operator インストールアーカイブの deploy/crds に含まれている broker_activemqartemisaddress_crd.yaml ファイルです。
    • OperatorHub を使用して Operator をインストールした場合、アドレス CRD は OpenShift Container Platform Web コンソールのAdministration Custom Resource Definitions に一覧表示されている ActiveMQArtemisAddress CRD になります。
  • 特定のアドレスに一致するアドレスおよびキュー設定を設定するには、ブローカーデプロイメントの作成に使用されるメインのカスタムリソース (CR) インスタンスに設定を含めます。

    • OpenShift CLI を使用して Operator をインストールした場合、メインのブローカー CRD は、ダウンロードした Operator インストールアーカイブの deploy/crds に含まれる broker_activemqartemis_crd.yaml ファイルです。
    • OperatorHub を使用して Operator をインストールした場合、メインブローカー CRD は OpenShift Container Platform Web コンソールのAdministration Custom Resource Definitions に一覧表示されている ActiveMQArtemis CRD になります。

    通常、OpenShift Container Platform でのブローカーデプロイメントに設定できるアドレスおよびキュー設定は、Linux または Windows のスタンドアロンブローカーデプロイメントのいずれでも完全に同等です。ただし、これらの設定についての違いに注意してください。これらの違いは、以下のサブセクションで説明します。

  • OpenShift Container Platform のブローカーデプロイメントのアドレスおよびキュー設定を設定するには、ブローカーデプロイメントのメインカスタムリソース (CR) インスタンスの addressSettings セクションに設定を追加します。これは、Linux または Windows のスタンドアロンデプロイメントとは対照的で、broker.xml 設定ファイルの address-settings 要素に設定を追加します。
  • 設定項目の名前に使用される形式は、OpenShift Container Platform とスタンドアロンブローカーデプロイメントとは異なります。OpenShift Container Platform デプロイメントでは、設定アイテム名は camel ケースに置かれます (例: defaultQueueRoutingType)。一方、スタンドアロンデプロイメントの設定項目名は小文字にあり、dash (-) セパレーターを使用します (例: default-queue-routing-type)。

    以下の表は、この命名に関する他の例を紹介します。

    Expand
    スタンドアロンブローカーデプロイメントの設定アイテムOpenShift ブローカーデプロイメントの設定アイテム

    address-full-policy

    addressFullPolicy

    auto-create-queues

    autoCreateQueues

    default-queue-routing-type

    defaultQueueRoutingType

    last-value-queue

    lastValueQueue

関連情報

4.2.2. Operator ベースのブローカーデプロイメントのアドレスおよびキューの作成

以下の手順では、カスタムリソース (CR) インスタンスを使用してアドレスおよび関連付けられたキューを Operator ベースのブローカーデプロイメントに追加する方法を説明します。

注記

ブローカーデプロイメントに複数のアドレスやキューを作成するには、個別の CR ファイルを作成してそれらを個別にデプロイし、それぞれのケースに新しいアドレスやキュー名を指定する必要があります。さらに、各 CR インスタンスの name 属性は一意である必要があります。

前提条件

手順

  1. カスタムリソース (CR) インスタンスの設定を開始し、ブローカーデプロイメントのアドレスおよびキューを定義します。

    1. OpenShift コマンドラインインターフェイスの使用:

      1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。

        oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard Toggle word wrap
      2. ダウンロードした Operator インストールアーカイブの deploy/crs ディレクトリーに含まれる broker_activemqartemisaddress_cr.yaml というサンプル CR ファイルを開きます。
    2. OpenShift Container Platform Web コンソールの使用

      1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
      2. アドレス CRD に基づいて新規 CR インスタンスを起動します。左側のペインで、Administration Custom Resource Definitions をクリックします。
      3. ActiveMQArtemisAddresss CRD をクリックします。
      4. Instances タブをクリックします。
      5. Create ActiveMQArtemisAddress をクリックします。

        コンソールで、YAML エディターが開き、CR インスタンスを設定できます。

  2. CR の spec セクションで、行を追加してアドレス、キュー、およびルーティングタイプを定義します。以下に例を示します。

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemisAddress
    metadata:
        name: myAddressDeployment0
        namespace: myProject
    spec:
        ...
        addressName: myAddress0
        queueName: myQueue0
        routingType: anycast
        ...
    Copy to Clipboard Toggle word wrap

    上記の設定では、myQueue0 という名前のキューと anycast ルーティングタイプを持つ myAddress0 という名前のアドレスが定義されます。

    注記

    metadata セクションで、namespace プロパティーを追加し、OpenShift Container Platform Web コンソールを使用して CR インスタンスを作成する場合にのみ値を指定する必要があります。指定する値は、ブローカーデプロイメントの OpenShift プロジェクトの名前です。

  3. CR インスタンスをデプロイします。

    1. OpenShift コマンドラインインターフェイスの使用:

      1. CR ファイルを保存します。
      2. ブローカーデプロイメントのプロジェクトに切り替えます。

        $ oc project <project_name>
        Copy to Clipboard Toggle word wrap
      3. CR インスタンスを作成します。

        $ oc create -f <path/to/address_custom_resource_instance>.yaml
        Copy to Clipboard Toggle word wrap
    2. OpenShift Web コンソールの使用

      1. CR の設定が完了したら、Create をクリックします。

4.2.3. Operator ベースのブローカーデプロイメントのアドレスおよびキューの削除

以下の手順では、カスタムリソース (CR) インスタンスを使用してアドレスおよび関連付けられたキューを Operator ベースのブローカーデプロイメントから削除する方法を説明します。

手順

  1. 削除するアドレスとキューの詳細 (nameaddressNamequeueName など) が記載されたアドレス CR ファイルがあることを確認してください。以下に例を示します。

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemisAddress
    metadata:
        name: myAddressDeployment0
        namespace: myProject
    spec:
        ...
        addressName: myAddress0
        queueName: myQueue0
        routingType: anycast
        ...
    Copy to Clipboard Toggle word wrap
  2. アドレス CR の spec セクションに、removeFromBrokerOnDelete 属性を追加し、値を true に設定します。

    ..
    spec:
       addressName: myAddress1
       queueName: myQueue1
       routingType: anycast
       removeFromBrokerOnDelete: true
    Copy to Clipboard Toggle word wrap

    removeFromBrokerOnDelete 属性を true に設定すると、アドレス CR を削除するときに、Operator はデプロイメント内のすべてのブローカーのアドレスと関連するメッセージを削除します。

  3. 更新されたアドレス CR を適用して、削除するアドレスの removeFromBrokerOnDelete 属性を設定します。

    $ oc apply -f <path/to/address_custom_resource_instance>.yaml
    Copy to Clipboard Toggle word wrap
  4. アドレス CR を削除して、デプロイメント内のブローカーからアドレスを削除します。

    $ oc delete -f <path/to/address_custom_resource_instance>.yaml
    Copy to Clipboard Toggle word wrap

クライアントにメッセージの配信に失敗した場合は、ブローカーがメッセージの配信を継続しようとしない場合があります。無限配信を試行するのを防ぐために、デッドレターアドレスと関連するデッドレターキューを定義できます。指定の数の配信試行後、ブローカーは元のキューから未配信メッセージを削除し、そのメッセージを設定済みのデッドレターアドレスに送信します。システム管理者は、デッド文字キューから未配信メッセージを後で消費してメッセージを検査できます。

以下の例は、Operator ベースのブローカーデプロイメントのデッドレターアドレスおよびキューを設定する方法を示しています。この例では、以下の方法を示しています。

  • メインのブローカーカスタムリソース (CR) インスタンスの addressSetting セクションを使用して、アドレスを設定します。
  • これらのアドレス設定をブローカーデプロイメントのアドレスに一致させます。

前提条件

手順

  1. アドレス CR インスタンスの設定を開始して、デッドレターアドレスを追加し、デプロイメント内の各ブローカーの未配信メッセージを受信するキューを作成します。

    1. OpenShift コマンドラインインターフェイスの使用:

      1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。

        oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard Toggle word wrap
      2. ダウンロードした Operator インストールアーカイブの deploy/crs ディレクトリーに含まれる broker_activemqartemisaddress_cr.yaml というサンプル CR ファイルを開きます。
    2. OpenShift Container Platform Web コンソールの使用

      1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
      2. アドレス CRD に基づいて新規 CR インスタンスを起動します。左側のペインで、Administration Custom Resource Definitions をクリックします。
      3. ActiveMQArtemisAddresss CRD をクリックします。
      4. Instances タブをクリックします。
      5. Create ActiveMQArtemisAddress をクリックします。

        コンソールで、YAML エディターが開き、CR インスタンスを設定できます。

  2. CR の spec セクションで、未配信のメッセージを受信するデッドレターアドレスおよびキューを指定する行を追加します。以下に例を示します。

    apiVersion: broker.amq.io/v1beta1
    kind: ActiveMQArtemisAddress
    metadata:
      name: ex-aaoaddress
    spec:
      ...
      addressName: myDeadLetterAddress
      queueName: myDeadLetterQueue
      routingType: anycast
      ...
    Copy to Clipboard Toggle word wrap

    上記の設定では、myDeadLetterQueue という名前のデッドレターキューと anycast ルーティングタイプを持つ myDeadLetterAddress という名前のデッドレターアドレスを定義します。

    注記

    metadata セクションで、namespace プロパティーを追加し、OpenShift Container Platform Web コンソールを使用して CR インスタンスを作成する場合にのみ値を指定する必要があります。指定する値は、ブローカーデプロイメントの OpenShift プロジェクトの名前です。

  3. アドレス CR インスタンスをデプロイします。

    1. OpenShift コマンドラインインターフェイスの使用:

      1. CR ファイルを保存します。
      2. ブローカーデプロイメントのプロジェクトに切り替えます。

        $ oc project <project_name>
        Copy to Clipboard Toggle word wrap
      3. アドレス CR を作成します。

        $ oc create -f <path/to/address_custom_resource_instance>.yaml
        Copy to Clipboard Toggle word wrap
    2. OpenShift Web コンソールの使用

      1. CR の設定が完了したら、Create をクリックします。
  4. ブローカーデプロイメントのメインブローカー CR インスタンスを編集します。

    1. OpenShift コマンドラインインターフェイスの使用:

      1. ブローカーデプロイメントのプロジェクトで CR を編集およびデプロイする権限を持つユーザーとして OpenShift にログインします。

        $ oc login -u <user> -p <password> --server=<host:port>
        Copy to Clipboard Toggle word wrap
      2. CR を編集します。

         oc edit ActiveMQArtemis <CR instance name> -n <namespace>
        Copy to Clipboard Toggle word wrap
    2. OpenShift Container Platform Web コンソールの使用

      1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
      2. 左側のペインで、Operators Installed Operator をクリックします。
      3. Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch) Operator をクリックします。
      4. AMQ Broker タブをクリックします。
      5. ActiveMQArtemis インスタンス名をクリックします。
      6. YAML タブをクリックします。

        コンソールで、YAML エディターが開き、CR インスタンスを編集できるようになります。

        注記

        metadata セクションで、namespace プロパティーを追加し、OpenShift Container Platform Web コンソールを使用して CR インスタンスを作成する場合にのみ値を指定する必要があります。指定する値は、ブローカーデプロイメントの OpenShift プロジェクトの名前です。

  5. CR の spec セクションに、次に示すように、単一の addressSetting セクションを含む新しい addressSettings セクションを追加します。

    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
      addressSettings:
        addressSetting:
    Copy to Clipboard Toggle word wrap
  6. addressSetting ブロックに match プロパティーのインスタンスを 1 つ追加します。アドレス一致式を指定します。以下に例を示します。

    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
      addressSettings:
        addressSetting:
        - match: myAddress
    Copy to Clipboard Toggle word wrap
    match
    ブローカーが以下の設定を適用するアドレスまたはアドレスのセットを指定します。この例では、match プロパティーの値は myAddress と呼ばれる単一のアドレスに対応します。
  7. 未配信メッセージに関連するプロパティーを追加し、値を指定します。以下に例を示します。

    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
      addressSettings:
        addressSetting:
        - match: myAddress
          deadLetterAddress: myDeadLetterAddress
          maxDeliveryAttempts: 5
    Copy to Clipboard Toggle word wrap
    deadLetterAddress
    ブローカーが未達のメッセージを送信するアドレス。
    maxDeliveryAttempts

    メッセージを設定済みのデッドレターアドレスに移動する前にブローカーが行う最大配信試行数。

    上記の例では、ブローカーによって、myAddress で始まるアドレスにメッセージの配信が 5 回失敗する場合、ブローカーはメッセージを指定の dead letter address (myDeadLetterAddress) に移動します。

  8. (オプション) 別のアドレスまたはアドレスセットに同様の設定を適用します。以下に例を示します。

    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
      addressSettings:
        addressSetting:
        - match: myAddress
          deadLetterAddress: myDeadLetterAddress
          maxDeliveryAttempts: 5
        - match: 'myOtherAddresses#'
          deadLetterAddress: myDeadLetterAddress
          maxDeliveryAttempts: 3
    Copy to Clipboard Toggle word wrap

    この例では、2 つ目の match プロパティーの値にはハッシュワイルドカード文字が含まれます。ワイルドカード文字では、上記の設定が文字列 myOtherAddresses で始まる任意のアドレスに適用されることを意味します。

    注記

    ワイルドカード式を match プロパティーの値として使用する場合には、値を単一引用符で囲む必要があります (例: 'myOtherAddresses#')。

  9. addressSettings セクションの最初に applyRule プロパティーを追加し、値を指定します。以下に例を示します。

    spec:
      deploymentPlan:
        size: 1
        image: placeholder
        requireLogin: false
        persistenceEnabled: true
        journalType: nio
        messageMigration: true
      addressSettings:
        applyRule: merge_all
        addressSetting:
        - match: myAddress
          deadLetterAddress: myDeadLetterAddress
          maxDeliveryAttempts: 5
        - match: 'myOtherAddresses#'
          deadLetterAddress: myDeadLetterAddress
          maxDeliveryAttempts: 3
    Copy to Clipboard Toggle word wrap

    applyRule プロパティーは、Operator を一致するアドレスまたはアドレスのセットごとに CR に追加する設定を適用する方法を指定します。指定できる値は次のとおりです。

    merge_all
    • CR で指定されるアドレス設定、同じアドレスまたはアドレスのセットに一致するデフォルト設定の両方の場合:

      • デフォルト設定で指定されるプロパティー値を CR で指定されたプロパティー値に置き換えます。
      • CR またはデフォルト設定で一意で指定されるプロパティー値を保持します。これらはそれぞれ最終マージされた設定の組み込みます。
    • CR で指定されるアドレス設定または特定のアドレスセットに一意になるデフォルト設定の場合は、これらを最終でマージされた設定に含めます。
    merge_replace
    • CR に指定されたアドレス設定、同じアドレスまたはアドレスセットに一致するデフォルト設定について、最終的なマージされた設定の CR に指定された設定を含めます。それらのプロパティーが CR で指定されていない場合でも、デフォルト設定に指定されたプロパティーを含めないでください。
    • CR で指定されるアドレス設定または特定のアドレスセットに一意になるデフォルト設定の場合は、これらを最終でマージされた設定に含めます。
    replace_all
    デフォルト設定に指定されたすべてのアドレス設定を CR で指定されたアドレス設定に置き換えます。最後にマージされた設定は、CR で指定したものと完全に対応します。
    注記

    CR に applyRule プロパティーを明示的に含ない場合、Operator は merge_all のデフォルト値を使用します。

  10. CR インスタンスを保存します。

関連情報

  • OpenShift Container Platform ブローカーデプロイメントのアドレス、キュー、およびアドレス設定のすべての設定オプションについては、「カスタムリソース設定リファレンス」 を参照してください。
  • OpenShift コマンドラインインターフェイス (CLI) を使用して AMQ Broker Operator をインストールしている場合、ダウンロードしたインストールアーカイブおよび抽出したインストールアーカイブには、アドレス設定に関する追加例が含まれています。インストールアーカイブの deploy/examples ディレクトリーで、以下を参照してください。

    • artemis-basic-address-settings-deployment.yaml
    • artemis-merge-replace-address-settings-deployment.yaml
    • artemis-replace-address-settings-deployment.yaml
  • スタンドアロン ブローカーデプロイメントのアドレス、キュー、および関連するアドレス設定の設定に関する包括的な情報については、AMQ Broker の設定アドレスとキューの設定 を参照してください。この情報を使用して、OpenShift Container Platform のブローカーデプロイメントの同等の設定を作成できます。
  • OpenShift Container Platform の init コンテナーの詳細は、OpenShift Container Platform ドキュメントの Pod がデプロイされる前に init コンテナーを使用してタスクを実行する を参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat