最近有用到activemq 想实现一次读取n条数据,由于没有读太多activemq 文档 所以对activemq 不太熟悉,只是能启动实现现在的需求。然后各种百度,发现预取限制,感觉看到了希望。但是发现好多都是写应该怎么用 ,这不是我想要的,我想看到他具体的表现。
一下在我坚持不懈下找到了一些解释。一下我做个总结:
预取限制
Activemq为每个打开的连接与抓取一定数量的消息(默认100条), 这是连接将队列里的消息(默认100条)都预锁定了,如果是再有连接(多消费者)来就读不到这些锁定的消息了。 嗯 大概体现就是这样 具体的还请大家看官方文档。
具体设置 可在activemq.xml中设置
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry queue="queue.>" queuePrefetch=”1”/>
<policyEntry topic="topic.>" topicPrefetch=”1000”/>
</policyEntries>
</policyMap>
</destinationPolicy>
也可在配置连接中设置jms.prefetchPolicy.queuePrefetch=n 预锁定n条
仔细读文档 理解深一点 就不会有这种简单的结论。原谅我这想以最短的时间却花很长时间的二逼。