一度に合計リクエスト数を増やすと、数が増えると交換キューがコンポーネントのいずれかでスタックします。
ActiveMQ には、プロデューサーがメッセージを書き込むのを停止するメカニズムがあり、「フロー制御」と呼ばれます。プロデューサーはコンシューマーよりも高速であるようです (または、コンシューマーは速度が安定していません)。そのため、最初に AMQ の memoryLimit 構成を確認します (これも定義します)。または特別なキューが可能)。増やしてみてください。
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic="FOO.>" producerFlowControl="false" memoryLimit="1mb">
<dispatchPolicy>
<strictOrderDispatchPolicy/>
</dispatchPolicy>
<subscriptionRecoveryPolicy>
<lastImageSubscriptionRecoveryPolicy/>
</subscriptionRecoveryPolicy>
</policyEntry>
</policyEntries>
</policyMap>
また、オプションで受信メッセージの処理の停止を無効にすることができproducerFlowControl="false"
ます。そのため、すべてのバッファが使用される場合、AMQ の速度が低下し、すべてのメッセージが HD に保存されます。詳細プロデューサー フロー制御とメッセージ カーソル
コンテナのヒープ サイズが非常に大きくなり、しばらくするとクラッシュして自動的に再起動します。
ただし、とにかく、これはアプリのチューニングの方法にすぎず、解決策ではありません。リソースが不足する場合が常にあるためです:)
受信リクエストを制限するか、 Poundを使用してそれらのバランスをとる必要があります