我正在使用具有99%非持久性主题的Active MQ。对于某些我只使用非持久性消息的测试,我尝试过强制代理使用memoryPersistenceAdapter会产生影响。我将配置更改为:
<beans>
...
<broker ... persistent="false"*>
...
</beans>
它确实有所作为!吞吐量增加约20%。
理论上,因为没有必要坚持,所以根本不应该有任何区别。这是怎么回事?
答案 0 :(得分:0)
队列和主题持久性要求将消息写入某处,以便在提供者/服务器重新启动时,任何未传递的消息仍然存在并且可以被接收。
主题持久性实际上仅在持久订阅正在进行时才有意义,如果没有持久订阅且没有主题的活跃消费者,则无论如何都会立即删除消息。
可能有大量的活动消息和最少数量的消费者线程,处理可能会落后,因此提供商/服务器重新启动会收到消息...但是您的消费者几乎必须立即连接,我相信。