16.2. ブローカーミラーリングの設定


ブローカー接続を使用して、ブローカーのペア間でメッセージをミラーリングできます。一度にアクティブにできるブローカーは 1 つだけです。

前提条件

  • 2 つの稼働中のブローカーがある。

手順

  1. 最初のブローカーの broker.xml ファイルに broker-connections 要素を作成します。以下に例を示します。

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC1">
        <mirror/>
      </amqp-connection>
    </broker-connections>
    <hostname>
    他のブローカーインスタンスのホスト名。
    <port>
    他のホストでブローカーによって使用されるポート。

    最初のブローカー上のすべてのメッセージは 2 番目のブローカーにミラーリングされますが、ミラーが作成される前に存在していたメッセージはミラーリングされません。

  2. 最初のブローカーでメッセージを同期的にミラーリングして、ミラーリングされたブローカーがディザスターリカバリー用に最新であることを確認する場合は、次の例に示すように、ブローカーの amqp-connection 要素に sync=true 属性を設定します。

    同期ミラーリングでは、ブローカーからミラーリングされたブローカーに送信されるメッセージが両方のブローカーのボリュームに同時に書き込まれる必要があります。両方のブローカーで書き込み操作が完了すると、ソースブローカーは書き込みリクエストが完了したことを認識し、制御がクライアントに返されます。

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror sync="true"/>
      </amqp-connection>
    </broker-connections>
    注記

    ミラーリングされたブローカーで書き込みリクエストを完了できない場合、たとえばブローカーが使用できない場合、最新の書き込みリクエストを完了するためにミラーが使用可能になるまで、クライアント接続はブロックされます。

    注記

    この例のブローカー接続名である DC1 は、$ACTIVEMQ_ARTEMIS_MIRROR_mirror という名前のキューを作成するために使用されます。キューがそのブローカーで表示されない場合でも、対応するブローカーがこれらのメッセージを受け入れるように設定されていることを確認します。

  3. 2 番目のブローカーの broker.xml ファイルに broker-connections 要素を作成します。以下に例を示します。

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror/>
      </amqp-connection>
    </broker-connections>
  4. 2 番目のブローカーでメッセージを同期的にミラーリングする場合は、ブローカーの amqp-connection 要素に sync=true 属性を設定します。以下に例を示します。

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror sync="true"/>
      </amqp-connection>
    </broker-connections>
  5. (オプション) 必要に応じて、ミラーの次のパラメーターを設定します。

    queue-removal
    キューまたはアドレスのどちらかの削除イベントを送信するかどうかを指定します。デフォルト値は true です。
    message-acknowledgments
    メッセージ確認応答を送信するかどうかを指定します。デフォルト値は true です。
    queue-creation
    キューまたはアドレスのどちらかの作成イベントを送信するかどうかを指定します。デフォルト値は true です。

    以下に例を示します。

    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror sync="true" queue-removal="false" message-acknowledgments ="false" queue-creation="false"/>
      </amqp-connection>
    </broker-connections>
  6. (オプション) ターゲットミラー上のメッセージを確認するブローカーの再試行をカスタマイズします。

    場合によっては、キューメモリーにないメッセージの確認応答がターゲットミラーに届くことがあります。ブローカーがターゲットミラー上のメッセージの確認を再試行するのに十分な時間を確保するために、環境に合わせて次のパラメーターをカスタマイズできます。

    mirrorAckManagerQueueAttempts
    ブローカーがメモリー内でメッセージを検索しようとする試行の回数。デフォルト値は 5 です。指定回数試行してもメモリー内でメッセージが見つからなかった場合、ブローカーはページファイル内でメッセージを検索します。
    mirrorAckManagerPageAttempts
    メッセージがメモリー内に見つからなかった場合に、ブローカーがページファイル内でメッセージを検索しようとする試行の回数。デフォルト値は 2 です。
    mirrorAckManagerRetryDelay
    ブローカーがメモリー内で、続いてページファイル内で、確認するメッセージを検索しようとする試行の間隔 (ミリ秒単位)。

    これらのパラメーターは、broker-connections 要素の外部で指定します。以下に例を示します。

    <mirrorAckManagerQueueAttempts>8</mirrorAckManagerQueueAttempts>
    
    <broker-connections>
      <amqp-connection uri="tcp://<hostname>:<port>" name="DC2">
        <mirror/>
      </amqp-connection>
    </broker-connections>
  7. (オプション) メッセージがターゲットミラー上でページングされる場合に、ブローカーが重複検出情報の書き込みとページファイルへのメッセージの書き込みを調整するようにするには、mirrorPageTransactiontrue に設定します。

    mirrorPageTransaction 属性が false (デフォルト) に設定されている場合に、ブローカー間で通信障害が発生すると、まれに重複したメッセージがターゲットミラーに書き込まれることがあります。

    このパラメーターを true に設定すると、ブローカーのメモリー使用量が増加します。

  8. 「マルチサイトの耐障害性のあるメッセージングシステムでのクライアントの設定」 に記載されている説明を使用してクライアントを設定します。これはブローカー接続でなく、共有ストレージはありません。
重要

Red Hat は、ミラー設定で両方のブローカーからのメッセージを消費するクライアントアプリケーションをサポートしていません。クライアントが両方のブローカーでメッセージを消費しないようにするには、いずれかのブローカーでクライアントアクセプターを無効にします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.