如何配置OpenMQ不将所有正在进行的消息存储在内存中?

时间:2011-12-26 15:33:13

标签: jms apache-camel openmq

我为我们的通知服务加载测试不同的JMS实现。 ActiveMQ,HornetQ和OpenMQ中没有一个表现得像预期的那样(可靠性和消息优先级问题)。但是现在我用OpenMQ获得了最好的结果。期待两个可能只是错误配置的问题(我希望)。一个有JDBC存储

测试场景:

具有一个队列的2个生成器发送具有不同优先级的消息。 1个消费者从队列中消耗,其速度略低于生产者生产的速度。 OpenMQ是独立运行的,并使用PostgreSQL作为持久性存储。所有消息都是从Apache Camel路由发送和使用的,并且它们都是持久的。

的问题:

  1. 在大约50000条消息之后,我在OpenMQ日志中看到有关内存不足的警告和错误(默认配置为256Mb堆大小)。由经纪人提供生产,经过一段时间经纪人停止派遣。 Broker JVM内存使用量最大。
  2. 我必须如何配置代理才能实现这一目标:

    • 代理不依赖于队列大小(最多1 000 000 msgs)和内存限制。性能不是问题 - 只有可靠性。

    多数可能?

1 个答案:

答案 0 :(得分:0)

我无法使用OpenMQ,但可能使用Camel和ActiveMQ。您对ActiveMQ有什么问题?你可以发布你的骆驼路线,最终弹出上下文和activemq配置吗?