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 コンソールの
に一覧表示されている ActiveMQArtemisAddressCRD になります。
-
OpenShift コマンドラインインターフェイス (CLI) を使用して Operator をインストールした場合、アドレス CRD は、ダウンロードした Operator インストールアーカイブの
特定のアドレスに一致するアドレスおよびキュー設定を設定するには、ブローカーデプロイメントの作成に使用されるメインのカスタムリソース (CR) インスタンスに設定を含めます。
-
OpenShift CLI を使用して Operator をインストールした場合、メインのブローカー CRD は、ダウンロードした Operator インストールアーカイブの
deploy/crdsに含まれるbroker_activemqartemis_crd.yamlファイルです。 -
OperatorHub を使用して Operator をインストールした場合、メインブローカー CRD は OpenShift Container Platform Web コンソールの
に一覧表示されている ActiveMQArtemisCRD になります。
通常、OpenShift Container Platform でのブローカーデプロイメントに設定できるアドレスおよびキュー設定は、Linux または Windows のスタンドアロンブローカーデプロイメントのいずれでも完全に同等です。ただし、これらの設定についての違いに注意してください。これらの違いは、以下のサブセクションで説明します。
-
OpenShift CLI を使用して Operator をインストールした場合、メインのブローカー CRD は、ダウンロードした Operator インストールアーカイブの
4.2.1. OpenShift とスタンドアロンブローカーデプロイメント間のアドレスおよびキュー設定の相違点 リンクのコピーリンクがクリップボードにコピーされました!
-
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
関連情報
OpenShift Container Platform ブローカーデプロイメントのアドレスおよびキューの作成と一致する設定の例については、以下を参照してください。
- OpenShift Container Platform ブローカーデプロイメントのアドレス、キュー、およびアドレス設定のすべての設定オプションについては、「カスタムリソース設定リファレンス」 を参照してください。
- スタンドアロン ブローカーデプロイメントのアドレス、キュー、および関連するアドレス設定の設定に関する包括的な情報については、AMQ Broker の設定 の アドレスとキューの設定 を参照してください。この情報を使用して、OpenShift Container Platform のブローカーデプロイメントの同等の設定を作成できます。
4.2.2. Operator ベースのブローカーデプロイメントのアドレスおよびキューの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、カスタムリソース (CR) インスタンスを使用してアドレスおよび関連付けられたキューを Operator ベースのブローカーデプロイメントに追加する方法を説明します。
ブローカーデプロイメントに複数のアドレスやキューを作成するには、個別の CR ファイルを作成してそれらを個別にデプロイし、それぞれのケースに新しいアドレスやキュー名を指定する必要があります。さらに、各 CR インスタンスの name 属性は一意である必要があります。
前提条件
ブローカーでアドレスおよびキューを作成するために必要な専用のカスタムリソース定義 (CRD) を含む AMQ Broker Operator がすでにインストールされている必要があります。Operator のインストール方法の 2 つの代替方法については、以下を参照してください。
- CR インスタンスを使用して基本的なブローカーデプロイメントを作成する方法を理解する必要があります。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。
手順
カスタムリソース (CR) インスタンスの設定を開始し、ブローカーデプロイメントのアドレスおよびキューを定義します。
OpenShift コマンドラインインターフェイスの使用:
ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ダウンロードした Operator インストールアーカイブの
deploy/crsディレクトリーに含まれるbroker_activemqartemisaddress_cr.yamlというサンプル CR ファイルを開きます。
OpenShift Container Platform Web コンソールの使用
- ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
-
アドレス CRD に基づいて新規 CR インスタンスを起動します。左側のペインで、
をクリックします。 - ActiveMQArtemisAddresss CRD をクリックします。
- Instances タブをクリックします。
Create ActiveMQArtemisAddress をクリックします。
コンソールで、YAML エディターが開き、CR インスタンスを設定できます。
CR の
specセクションで、行を追加してアドレス、キュー、およびルーティングタイプを定義します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の設定では、
myQueue0という名前のキューとanycastルーティングタイプを持つmyAddress0という名前のアドレスが定義されます。注記metadataセクションで、namespaceプロパティーを追加し、OpenShift Container Platform Web コンソールを使用して CR インスタンスを作成する場合にのみ値を指定する必要があります。指定する値は、ブローカーデプロイメントの OpenShift プロジェクトの名前です。CR インスタンスをデプロイします。
OpenShift コマンドラインインターフェイスの使用:
- CR ファイルを保存します。
ブローカーデプロイメントのプロジェクトに切り替えます。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR インスタンスを作成します。
oc create -f <path/to/address_custom_resource_instance>.yaml
$ oc create -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Web コンソールの使用
- CR の設定が完了したら、Create をクリックします。
4.2.3. Operator ベースのブローカーデプロイメントのアドレスおよびキューの削除 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、カスタムリソース (CR) インスタンスを使用してアドレスおよび関連付けられたキューを Operator ベースのブローカーデプロイメントから削除する方法を説明します。
手順
削除するアドレスとキューの詳細 (
name、addressName、queueNameなど) が記載されたアドレス CR ファイルがあることを確認してください。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アドレス CR の
specセクションに、removeFromBrokerOnDelete属性を追加し、値をtrueに設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow removeFromBrokerOnDelete属性をtrueに設定すると、アドレス CR を削除するときに、Operator はデプロイメント内のすべてのブローカーのアドレスと関連するメッセージを削除します。更新されたアドレス CR を適用して、削除するアドレスの
removeFromBrokerOnDelete属性を設定します。oc apply -f <path/to/address_custom_resource_instance>.yaml
$ oc apply -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow アドレス CR を削除して、デプロイメント内のブローカーからアドレスを削除します。
oc delete -f <path/to/address_custom_resource_instance>.yaml
$ oc delete -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.4. Operator ベースのブローカーデプロイメントで設定されたアドレスへのマッチングアドレス設定 リンクのコピーリンクがクリップボードにコピーされました!
クライアントにメッセージの配信に失敗した場合は、ブローカーがメッセージの配信を継続しようとしない場合があります。無限配信を試行するのを防ぐために、デッドレターアドレスと関連するデッドレターキューを定義できます。指定の数の配信試行後、ブローカーは元のキューから未配信メッセージを削除し、そのメッセージを設定済みのデッドレターアドレスに送信します。システム管理者は、デッド文字キューから未配信メッセージを後で消費してメッセージを検査できます。
以下の例は、Operator ベースのブローカーデプロイメントのデッドレターアドレスおよびキューを設定する方法を示しています。この例では、以下の方法を示しています。
-
メインのブローカーカスタムリソース (CR) インスタンスの
addressSettingセクションを使用して、アドレスを設定します。 - これらのアドレス設定をブローカーデプロイメントのアドレスに一致させます。
前提条件
-
ブローカーをデプロイするために
ActiveMQArtemisCR インスタンスを作成している。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。 - Operator が CR インスタンスで指定された設定とマージまたは置換する デフォルト のアドレス設定について理解している。詳細は、「Operator によるアドレス設定の生成方法」 を参照してください。
手順
アドレス CR インスタンスの設定を開始して、デッドレターアドレスを追加し、デプロイメント内の各ブローカーの未配信メッセージを受信するキューを作成します。
OpenShift コマンドラインインターフェイスの使用:
ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ダウンロードした Operator インストールアーカイブの
deploy/crsディレクトリーに含まれるbroker_activemqartemisaddress_cr.yamlというサンプル CR ファイルを開きます。
OpenShift Container Platform Web コンソールの使用
- ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
-
アドレス CRD に基づいて新規 CR インスタンスを起動します。左側のペインで、
をクリックします。 - ActiveMQArtemisAddresss CRD をクリックします。
- Instances タブをクリックします。
Create ActiveMQArtemisAddress をクリックします。
コンソールで、YAML エディターが開き、CR インスタンスを設定できます。
CR の
specセクションで、未配信のメッセージを受信するデッドレターアドレスおよびキューを指定する行を追加します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の設定では、
myDeadLetterQueueという名前のデッドレターキューとanycastルーティングタイプを持つmyDeadLetterAddressという名前のデッドレターアドレスを定義します。注記metadataセクションで、namespaceプロパティーを追加し、OpenShift Container Platform Web コンソールを使用して CR インスタンスを作成する場合にのみ値を指定する必要があります。指定する値は、ブローカーデプロイメントの OpenShift プロジェクトの名前です。アドレス CR インスタンスをデプロイします。
OpenShift コマンドラインインターフェイスの使用:
- CR ファイルを保存します。
ブローカーデプロイメントのプロジェクトに切り替えます。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow アドレス CR を作成します。
oc create -f <path/to/address_custom_resource_instance>.yaml
$ oc create -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Web コンソールの使用
- CR の設定が完了したら、Create をクリックします。
ブローカーデプロイメントのメインブローカー CR インスタンスを編集します。
OpenShift コマンドラインインターフェイスの使用:
ブローカーデプロイメントのプロジェクトで CR を編集およびデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>
$ oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR を編集します。
oc edit ActiveMQArtemis <CR instance name> -n <namespace>
oc edit ActiveMQArtemis <CR instance name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift Container Platform Web コンソールの使用
- ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
-
左側のペインで、
をクリックします。 - Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch) Operator をクリックします。
- AMQ Broker タブをクリックします。
- ActiveMQArtemis インスタンス名をクリックします。
YAML タブをクリックします。
コンソールで、YAML エディターが開き、CR インスタンスを編集できるようになります。
注記metadataセクションで、namespaceプロパティーを追加し、OpenShift Container Platform Web コンソールを使用して CR インスタンスを作成する場合にのみ値を指定する必要があります。指定する値は、ブローカーデプロイメントの OpenShift プロジェクトの名前です。
CR の
specセクションに、次に示すように、単一のaddressSettingセクションを含む新しいaddressSettingsセクションを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow addressSettingブロックにmatchプロパティーのインスタンスを 1 つ追加します。アドレス一致式を指定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow match-
ブローカーが以下の設定を適用するアドレスまたはアドレスのセットを指定します。この例では、
matchプロパティーの値はmyAddressと呼ばれる単一のアドレスに対応します。
未配信メッセージに関連するプロパティーを追加し、値を指定します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow deadLetterAddress- ブローカーが未達のメッセージを送信するアドレス。
maxDeliveryAttemptsメッセージを設定済みのデッドレターアドレスに移動する前にブローカーが行う最大配信試行数。
上記の例では、ブローカーによって、
myAddressで始まるアドレスにメッセージの配信が 5 回失敗する場合、ブローカーはメッセージを指定の dead letter address (myDeadLetterAddress) に移動します。
(オプション) 別のアドレスまたはアドレスセットに同様の設定を適用します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、2 つ目の
matchプロパティーの値にはハッシュワイルドカード文字が含まれます。ワイルドカード文字では、上記の設定が文字列myOtherAddressesで始まる任意のアドレスに適用されることを意味します。注記ワイルドカード式を
matchプロパティーの値として使用する場合には、値を単一引用符で囲む必要があります (例:'myOtherAddresses#')。addressSettingsセクションの最初にapplyRuleプロパティーを追加し、値を指定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow applyRuleプロパティーは、Operator を一致するアドレスまたはアドレスのセットごとに CR に追加する設定を適用する方法を指定します。指定できる値は次のとおりです。merge_allCR で指定されるアドレス設定と、同じアドレスまたはアドレスのセットに一致するデフォルト設定の両方の場合:
- デフォルト設定で指定されるプロパティー値を CR で指定されたプロパティー値に置き換えます。
- CR またはデフォルト設定で一意で指定されるプロパティー値を保持します。これらはそれぞれ最終マージされた設定の組み込みます。
- CR で指定されるアドレス設定または特定のアドレスセットに一意になるデフォルト設定の場合は、これらを最終でマージされた設定に含めます。
merge_replace- CR に指定されたアドレス設定と、同じアドレスまたはアドレスセットに一致するデフォルト設定について、最終的なマージされた設定の CR に指定された設定を含めます。それらのプロパティーが CR で指定されていない場合でも、デフォルト設定に指定されたプロパティーを含めないでください。
- CR で指定されるアドレス設定または特定のアドレスセットに一意になるデフォルト設定の場合は、これらを最終でマージされた設定に含めます。
replace_all- デフォルト設定に指定されたすべてのアドレス設定を CR で指定されたアドレス設定に置き換えます。最後にマージされた設定は、CR で指定したものと完全に対応します。
注記CR に
applyRuleプロパティーを明示的に含ない場合、Operator はmerge_allのデフォルト値を使用します。- 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 コンテナーを使用してタスクを実行する を参照してください。