java – 为什么ActiveMQ使用memoryPersistenceAdapter快20%?

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

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

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

从理论上讲,因为没有必要坚持下去,所以根本就没有任何区别.这里发生了什么?

解决方法

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

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

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

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...