10.2.2. メッセージのブロック


複数のプロデューサーを同じアドレスに関連付けることができるので、実際に利用できるものよりも、ブローカーがすべてのプロデューサーにクレジットを割り当てることができます。ただし、ブローカーが利用可能な量よりも多くのクレジットを送信できないアドレスに最大サイズを設定できます。

デフォルトの設定では、各アドレスにグローバル最大サイズ 100Mb が使用されます。アドレスが満杯になると、ブローカーはキューにルーティングする代わりに、ページングジャーナルにさらにメッセージを書き込みます。ページングの代わりに、古いメッセージが消費されるまで、クライアント側でより多くのメッセージの送信をブロックできます。このようにプロデューサーフロー制御をブロックすると、プロデューサーが一度に処理できる数を超えるメッセージを送信するため、ブローカーがメモリー不足になるのを防ぎます。

この設定では、プロデューサーフロー制御のブロックは address-setting ごとに管理されます。この設定は、アドレスに登録されているすべてのキューに適用されます。つまり、そのアドレスにバインドされるすべてのキューの合計メモリーは max-size-bytes に指定された値によって上限になります。

注記

ブロックはプロトコルに依存します。AMQ Broker では、AMQP、OpenWire、および Core Protocol はプロデューサーフロー制御をサポートします。しかし、AMQP はフロー制御方法が異なります。詳細は、AMQP を使用したフロー制御のブロックを参照してください。

アドレスの最大サイズの設定

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

手順

  • 以下の設定例の場合、address-setting は最大サイズ 300000 バイトに達すると、メッセージの送信から BLOCK プロデューサーに設定されます。
<configuration>
  <core>
    ...
    <address-settings>
       <address-setting match="my.blocking.queue"> 1
          <max-size-bytes>300000</max-size-bytes>  2
          <address-full-policy>BLOCK</address-full-policy> 3
       </address-setting>
    </address-settings>
  </core>
</configuration>
1
上記の設定は、my.blocking.queue アドレス によって参照されるキューに適用されます。
2
最大サイズを 300000 バイトに設定します。メッセージが max-size-bytes を超えると、ブローカーはプロデューサーがアドレスに送信をブロックします。この要素は、K、Mb、GB などのバイト表記に対応していることに注意してください。
3
address-full-policyBLOCK に設定し、プロデューサーフロー制御のブロックを有効にします。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.