我已经为我们的通知服务负载测试不同的 JMS 实现。ActiveMQ、HornetQ 和 OpenMQ 都没有按预期运行(可靠性和消息优先级问题)。但是现在我使用 OpenMQ 取得了最好的结果。期待两个可能只是配置错误的问题(我希望如此)。一种带有 JDBC 存储
测试场景:
一个队列的 2 个生产者发送不同优先级的消息。1 消费者从队列中以恒定速度消费,其速度略低于生产者生产的速度。OpenMQ 独立运行并使用 PostgreSQL 作为持久性存储。所有消息都是从 Apache Camel 路由发送和使用的,并且都是持久的。
问题:
- 大约 50000 条消息后,我在 OpenMQ 日志中看到有关内存不足的警告和错误(默认 cinfiguration 具有 256Mb 堆大小)。生产由经纪人进行,一段时间后经纪人完全停止调度。Broker JVM 内存使用量已达到最大值。
我必须如何配置代理以实现该目标:
- 代理不依赖于队列大小(最多 1 000 000 条消息)和内存限制。性能不是问题——只有可靠性。
那可能吗?