7.3. メッセージブロックの設定


以下の手順では、指定のアドレスが指定した最大サイズ制限に達した際に、メッセージブロックを設定する方法を説明します。

注記

メッセージブロックは、Core、OpenWire、および AMQP プロトコルに対して のみ 設定できます。

7.3.1. Core および OpenWire プロデューサーのブロック

以下の手順は、指定のアドレスが指定した最大サイズ制限に達した際の、Core および OpenWire メッセージプロデューサーのメッセージブロックを設定する方法を示しています。

前提条件

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. 一致するアドレスまたはアドレス セット 用に設定した address-setting 要素の場合は、メッセージブロック動作を定義する設定要素を追加します。以下に例を示します。

    <address-settings>
        <address-setting match="my.blocking.address">
            ...
            <max-size-bytes>300000</max-size-bytes>
            <address-full-policy>BLOCK</address-full-policy>
            ...
        </address-setting>
    </address-settings>
    max-size-bytes

    ブローカーが address-full-policy に指定されたポリシーを実行する前に、アドレスに許可されるメモリーの最大サイズ ( バイト単位 )。指定する値は、K、MB、GB などのバイト表記もサポートします。

    注記

    address-setting 要素で max-size-bytes を指定すると、一致する アドレスに値が適用されます。この値を指定すると、一致するすべてのアドレスの 合計 サイズが max-size-bytes の値に制限されるわけでは ありません

    address-full-policy
    アドレスの最大サイズに達したときにブローカーが取るアクション。

    上記の例では、アドレス my.blocking.address に送信されたメッセージがメモリーの 300000 バイトを超えると、ブローカーは Core または OpenWire メッセージプロデューサーからの追加のメッセージをブロックします。

7.3.2. AMQP プロデューサーのブロック

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

対照的に、AMQP フロー制御のクレジットはバイトを表します。代わりに、AMQP クレジットは、メッセージサイズに関係なく、プロデューサーが送信できるメッセージの数を表します。そのため、AMQP プロデューサーがアドレスの max-size-bytes の値を大幅に超過することがあります。

そのため、AMQP プロデューサーをブロックするには、別の設定要素 max-size-bytes-reject-threshold を使用する必要があります。一致するアドレスまたはアドレスセットの場合、この要素はメモリーのすべての AMQP メッセージの最大サイズをバイト単位で指定します。メモリーのすべてのメッセージの合計サイズが指定の制限に達すると、ブローカーは AMQP プロデューサーが追加のメッセージを送信しなくなります。

以下の手順では、AMQP メッセージプロデューサーのメッセージブロックを設定する方法を説明します。

前提条件

手順

  1. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  2. 一致するアドレスまたはアドレス セット に設定した address-setting 要素の場合は、メモリーのすべての AMQP メッセージの最大サイズを指定します。以下に例を示します。

    <address-settings>
        <address-setting match="my.amqp.blocking.address">
            ...
            <max-size-bytes-reject-threshold>300000</max-size-bytes-reject-threshold>
            ...
        </address-setting>
    </address-settings>
    max-size-bytes-reject-threshold

    ブローカーが AMQP メッセージをさらにブロックする前に、アドレスに許可されるメモリーの最大サイズ ( バイト単位 )。指定する値は、K、MB、GB などのバイト表記もサポートします。デフォルトでは、max-size-bytes-reject-threshold-1 に設定されます。これは、最大サイズがないことを意味します。

    注記

    address-setting 要素で max-size-bytes-reject-threshold を指定する場合、値は一致する アドレスに適用されます。この値を指定すると、一致するすべてのアドレスの 合計 サイズが max-size-bytes-reject-threshold の値に制限されるわけでは ありません

上記の例では、my.amqp.blocking.address アドレスに送信されたメッセージがメモリーの 300000 バイトを超えると、ブローカーは AMQP プロデューサーからの追加のメッセージをブロックし始めます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.