为什么ActiveMQ使用memoryPersistenceAdapter快20%?

时间:2016-04-08 13:54:42

标签: java jms activemq

我正在使用具有99%非持久性主题的Active MQ。对于某些我只使用非持久性消息的测试,我尝试过强制代理使用memoryPersistenceAdapter会产生影响。我将配置更改为:

<beans>
    ... 
    <broker ... persistent="false"*>
    ... 
</beans>

它确实有所作为!吞吐量增加约20%。

理论上,因为没有必要坚持,所以根本不应该有任何区别。这是怎么回事?

1 个答案:

答案 0 :(得分:0)

队列和主题持久性要求将消息写入某处,以便在提供者/服务器重新启动时,任何未传递的消息仍然存在并且可以被接收。

主题持久性实际上仅在持久订阅正在进行时才有意义,如果没有持久订阅且没有主题的活跃消费者,则无论如何都会立即删除消息。

可能有大量的活动消息和最少数量的消费者线程,处理可能会落后,因此提供商/服务器重新启动会收到消息...但是您的消费者几乎必须立即连接,我相信。