10.2.3. AMQP メッセージのブロック


本章で前述したように、Core Protocol はプロデューサーのウィンドウサイズのフロー制御システムを使用します。このシステムでは、クレジットはバイトを表し、プロデューサーに割り当てられます。プロデューサーがメッセージを送信する場合は、送信する前にメッセージのサイズに対応するのに十分なクレジットがあるまで待機する必要があります。

しかし、AMQP フロー制御のクレジットはバイトを表すのではなく、メッセージサイズに関係なく、プロデューサーが送信できるメッセージの数を表します。そのため、AMQP クライアントがアドレスの max-size-bytes を大幅に超過するシナリオが考えられます。

この状況を管理するには、要素 max-size-bytes-reject-thresholdaddress-setting に追加し、アドレスサイズの上限をバイト単位で指定します。この上限に達すると、ブローカーは AMQP メッセージを拒否します。デフォルトでは、max-size-bytes-reject-threshold-1 に設定されているか、制限なしに設定されます。

AMQP メッセージをブロックするブローカーの設定

AMQP メッセージが設定された最大バイト数よりも大きい場合にブローカーを設定するには、BROKER_INSTANCE_DIR/etc/broker.xml に新しい addres-setting 設定要素を追加します。

手順

  • 以下の設定例は、最大サイズ 300000 バイトを my.amqp.blocking.queue アドレスにルーティングされる AMQP メッセージに適用します。

    <configuration>
      <core>
        ...
        <address-settings>
           ...
           <address-setting match="my.amqp.blocking.queue"> 1
              <max-size-bytes-reject-threshold>300000</max-size-bytes-reject-threshold>  2
           </address-setting>
        </address-settings>
      </core>
    </configuration>
1
上記の設定は、my.amqp.blocking.queue アドレスによって参照されるキューに適用されます。
2
ブローカーは、300000 バイトの max-size-bytes-reject-threshold を超える場合は、このアドレスに一致するキューに送信される AMQP メッセージを拒否するよう設定されます。この要素は、KMbGB などのバイト表記 に対応していません

関連資料

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.