8.3. プロデューサーフロー制御
8.3.1. フロー制御
ブローカーは、制限が設定されているキューにプロデューサーフロー制御を実装します。これにより、宛先キューのオーバーフローが発生する可能性があるメッセージプロデューサーがブロックされます。十分なメッセージが配信され、確認応答されると、キューはブロック解除されます。
フロー制御は、送信元とブローカー間の信頼できるリンクに依存します。これは、送信されたメッセージの承認を停止して、メッセージプロデューサーが送信元再生バッファー容量に到達し、送信を停止することで機能します。
タイプが Limit Policy で設定されたキューには、キューフローのしきい値が有効になってい
ring
ません。これらのキューは、ring
メカニズム を介してキャパシティーへのアクセスを処理します。制限のある他のすべてのキューには、キューの作成時にブローカーによって設定される 2 つのしきい値があります。
- flow_stop_threshold
- 超過時にフロー制御を有効にするキューリソースの使用状況レベル。渡されたら、キューはオーバーフローが発生したと見なされ、プロデューサーフロー制御への送信メッセージの承認がブローカーによって承認されます。キューサイズまたはメッセージカウントの容量使用率の いずれか がこれをトリガーできることに注意してください。
- flow_resume_threshold
- 以下にドロップされた場合にフロー制御を無効にするキューリソースの使用状況レベル。渡された後、キューはオーバーフローの発生で考慮されなくなり、ブローカーは送信されたメッセージを再度確認します。プロデューサーフロー制御が非アクティブになるまで、キューサイズとメッセージ数の 両方 が、このしきい値を下回る必要があることに注意してください。
これら 2 つのパラメーターの値は、容量制限の割合です。たとえば、キューに 204800
qpid.max_size
(200MB)があり、ある場合 80
、キューが 204800 または 163840 バイト flow_stop_threshold
のエンキューメッセージである場合は、ブローカーがプロデューサーフロー制御を開始します。
キューのリソース使用率がを下回ると
flow_resume_threshold
、プロデューサーフロー制御が停止します。flow_resume_threshold
上記の設定で flow_stop_threshold
は、プロデューサーフロー制御のロックが明確な結果となるため、実行しないでください。