ブローカーが構成された制限に達したときに、ActiveMQ プロデューサーをフェイルオーバーするように構成したいと考えています (私は Stomp プロトコルを使用しています)。消費者が過負荷のブローカーから衰えることなく消費を続けられるようにしたい.
ActiveMQ のドキュメントを読むと、ブローカーが限界 (メモリまたはディスク) に達したときに ActiveMQ を構成して、いくつかのことのいずれかを実行できるようです。
producerFlowControl="true"
(送信をブロックすることにより)メッセージを遅くする- 使用時に例外をスローする
sendFailIfNoSpace="true"
- 上記のどちらでもない、その場合..どうなるかわかりませんか? TCP フロー制御に戻りますか?
これらのいずれも、プロデューサーのフェイルオーバーをトリガーするように設計されているようには見えません。プロデューサーは、接続に失敗するとフェイルオーバーしますが、私が知る限り、送信に失敗した場合はフェイルオーバーしません (たとえば、プロデューサーのフロー制御が原因で)。
では、制限に達したときに接続を拒否するようにブローカーを構成することは可能ですか? または、プロデューサー側で速度低下を検出し、その時点で別のブローカーを使用するようにプロデューサーを手動で再構成するのが最善の策ですか?
ありがとう!