私はActiveMQを使用しています。消費者を待っている間、永続化されたメッセージが実際にディスクにスワップされる方法と時期について質問がありますか?ActiveMq、使用されていないメッセージは常にブローカのメモリにありますか?
私は仮想トピックを使用しており、メッセージを受信するキューコンシューマを作成しています。すべてのメッセージはです。です(消費されていないすべてのメッセージのレコードが持続性ストレージに存在することが確認されています)。
私は定期的に複数のコンシューマーを持っています。 jconsoleをactivemqに接続すると、すべてが使用されていないことに気付きましたはブローカのメモリに含まれているようです。彼らはディスクにスワップされません、少なくとも私はそれを確認することができませんでした。 memoryUsage
を設定するか、producerFlowControl
をオンに設定しても効果はありません。ブローカは、フロー制御をオンにしてmemoryUsage制限に達した場合にブロックされるか、フロー制御がオフの場合にMemoryPercentUsageが増加し続けるかどうかを示します。
正確にactivemqがメッセージをディスク/永続ストレージに保存してメモリを解放するとしたら?それともそうですか?何百万ものメッセージが待ち行列に残っていないときに、ブローカを長期間に制限するRAMではないディスク容量であることを確認するにはどうすればよいですか?
こんにちはKaKa、あなたの返事をありがとう。 'producerFlowControl'は、メッセージを格納するために** false **に設定する必要がありますか?そして、あなたが知っているなら、 'storageUsage' - それは常にハードディスク容量に関するものなのでしょうか?それともデータベースのサイズを意味するのでしょうか? – Paul