2.8. スケールダウン時のメッセージの移行


ブローカーデプロイメントの縮小時にメッセージを移行するには、メインのブローカーカスタムリソース定義(CRD)を使用してメッセージの移行を有効にします。AMQ Broker Operator は、クラスター化されたブローカーデプロイメントをスケールダウンする際に、専用のスケールダウンコントローラーを実行し、メッセージの移行を実行します。

メッセージ移行を有効にすると、Operator 内のスケールダウンコントローラーがブローカー Pod のシャットダウンを検出し、ドレイン Pod を開始し、メッセージ移行を実行します。ドレイナー Pod はクラスター内の他のライブブローカー Pod のいずれかに接続し、メッセージをそのライブブローカー Pod に移行します。移行が完了すると、スケールダウンコントローラーがシャットダウンします。

注記

縮小コントローラーは、単一の OpenShift プロジェクト内でのみ機能します。コントローラーは、別のプロジェクトのブローカー間でメッセージを移行できません。

注記

ブローカーデプロイメントを 0 (ゼロ) にスケールダウンする場合、メッセージングデータを移行できる稼働中のブローカー Pod がないため、メッセージ移行は行われません。ただし、デプロイメントをゼロブローカーにスケールダウンし、元のデプロイメントに含まれていた一部のブローカーのみに戻っても、シャットダウンされたブローカーのドレイン Pod が起動します。

以下の手順の例は、スケールダウンコントローラーの動作を示しています。

前提条件

手順

  1. 最初にダウンロードして展開した Operator リポジトリーの deploy/crs ディレクトリーで、メインブローカー CR broker_v2alpha1_activemqartemis_cr.yaml を開きます。

メインブローカー CR では、messageMigration および persistenceEnabledtrue に設定します。

+ これらの設定は、クラスターブローカーデプロイメントのサイズを後でスケールダウンすると、Operator はスケールダウンコントローラーを自動的に起動し、メッセージを実行中のブローカー Pod に移行することを意味します。

  1. 既存のブローカーデプロイメントで、実行中の Pod を確認します。

    $ oc get pods

    以下のような出力が表示されます。

    activemq-artemis-operator-8566d9bf58-9g25l   1/1   Running   0   3m38s
    ex-aao-ss-0                                  1/1   Running   0   112s
    ex-aao-ss-1                                  1/1   Running   0   8s

    上記の出力では、3 つの Pod が実行されていることが示されています。1 つはブローカー Operator 自体用で、デプロイメントの各ブローカーに個別の Pod が実行されていることを示しています。

  2. 各 Pod にログインし、各ブローカーにメッセージを送信します。

    1. Pod ex-aao-ss-0 にクラスター IP アドレスが 172.17.0.6 である場合は、以下のコマンドを実行します。

      $ /opt/amq-broker/bin/artemis producer --url tcp://172.17.0.6:61616 --user admin --password admin
    2. Pod ex-aao-ss-1 にクラスター IP アドレスが 172.17.0.7 である場合は、以下のコマンドを実行します。

      $ /opt/amq-broker/bin/artemis producer --url tcp://172.17.0.7:61616 --user admin --password admin

      前述のコマンドは、各ブローカーに TEST というキューを作成し、各キューに 1000 個のメッセージを追加します。

  3. クラスターを 2 つのブローカーにスケールダウンします。

    1. メインブローカー CR broker_v2alpha1_activemqartemis_cr.yaml を開きます。
    2. CR で、deploymentPlan.size1 に設定します。
    3. コマンドラインで変更を適用します。

      $ oc apply -f deploy/crs/broker_v2alpha1_activemqartemis_cr.yaml

      Pod ex-aao-ss-1 がシャットダウンを開始したことを確認します。縮小コントローラーは、同じ名前の新しいドレイン Pod を起動します。このドレイン Pod は、ブローカー Pod ex-aao-ss-1 からクラスター内の他のブローカー Pod にすべてのメッセージを移行した後にシャットダウンします (ex-aao-ss-0)。

  4. ドレイン Pod がシャットダウンされたら、ブローカー Pod ex-aao-ss-0TEST キューのメッセージ数を確認します。キューのメッセージ数が 2000 であることを確認できます。これは、ドレイン Pod がシャットダウンするブローカー Pod から 1000 個のメッセージを正常に移行しました。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る