14.4. メッセージ再分配の有効化


ブローカークラスターに message-load-balancingON_DEMAND または OFF_WITH_REDISTRIBUTION に設定されている場合、コンシューマーにメッセージを消費するコンシューマーがないキューでメッセージが stuck にならないように メッセージ再分配 を設定できます。

本セクションでは、以下の情報を提供します。

14.4.1. メッセージ再分配について

ブローカークラスターは負荷分散を使用して、メッセージの負荷をクラスター全体に分散します。クラスター接続で負荷分散を設定する場合は、以下の message-load-balancing 設定を使用して再分配を有効にできます。

  • ON_DEMAND - 負荷分散を有効にし、再分配を許可します。
  • OFF_WITH_REDISTRIBUTION - 負荷分散を無効にしますが、再分配を許可します。

いずれの場合も、ブローカーは一致するコンシューマーを持つ他のブローカーにのみメッセージを転送します。この動作により、メッセージがメッセージを消費するコンシューマーを持たないキューに移動されないようにします。ただし、メッセージがブローカーに転送された後にキューにアタッチされたコンシューマーがブローカーに転送されると、これらのメッセージはキュー内でストックになり、消費されません。この問題は、不足と呼ばれることもあります。

メッセージ再分配は、一致するコンシューマーを持つクラスター内のコンシューマーのないキューからメッセージを自動的に再分配することで、不足を防ぎます。

OFF_WITH_REDISTRIBUTION を使用すると、ブローカーは、アクティブなローカルコンシューマーがない場合に、一致するコンシューマーを持つ他のブローカーにのみメッセージを転送するため、コンシューマーが利用できない場合にブローカーの優先順位付けを実行できます。

メッセージ再分配は、フィルター ( セレクター とも呼ばれる ) の使用をサポートします。つまり、利用可能なローカルコンシューマーのセレクターと一致しない場合、メッセージは再分配されます。

関連情報

14.4.2. メッセージ再分配の設定

この手順では、負荷分散を使用してメッセージ再分配を設定する方法を説明します。負荷分散なしでメッセージ再分配を行う場合は、<message-load-balancing>OFF_WITH_REDISTRIBUTION に設定します。

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. <cluster-connection> 要素で、<message-load-balancing>ON_DEMAND に設定されていることを確認します。

    <configuration>
        <core>
            ...
            <cluster-connections>
                <cluster-connection name="my-cluster">
                    ...
                    <message-load-balancing>ON_DEMAND</message-load-balancing>
                    ...
                </cluster-connection>
            </cluster-connections>
        </core>
    </configuration>
  3. <address-settings> 要素内で、キューまたはキューのセットの再分配遅延を設定します。

    この例では、my.queue へのメッセージの負荷分散は、最後のコンシューマーが閉じられてから 5000 ミリ秒に再分散されます。

    <configuration>
        <core>
            ...
            <address-settings>
                <address-setting match="my.queue">
                    <redistribution-delay>5000</redistribution-delay>
                </address-setting>
            </address-settings>
            ...
        </core>
    </configuration>
    address-setting
    match 属性を、メッセージを再分配するキューの名前に設定します。ブローカーのワイルドカード構文を使用してキューの範囲を指定できます。詳細は、「アドレスセットへのアドレス設定の適用」 を参照してください。
    redistribution-delay
    このキューの最後のコンシューマーが閉じられてからクラスターの他のブローカーにメッセージを再分配するまでブローカーが待機する時間 ( ミリ秒単位 )。これを 0 に設定すると、メッセージは即座に再分配されます。ただし、通常は、再分配する前に遅延を設定する必要があります。コンシューマーを閉じるのは一般的ですが、同じキューに別のキューを迅速に作成する必要があります。
  4. クラスター内の追加のブローカーごとにこの手順を繰り返します。

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.