我想将 maxPageSize 设置为比默认值 200 更大的数字。
这就是我在 activemq.xml 文件中设置的方式:
<destinationPolicy>
<policyMap>
<policyEntries>
---
<policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb" maxPageSize="SOME_LARGE_NUMBER">
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
此更改帮助我使用 QueueBrowser.getEnumeration() 获取队列中的消息数,因为即使队列中的消息数大于 200,它也会返回 200。
请参见:http://docs.oracle.com/javaee/1.4/api/javax/jms/QueueBrowser.html对于 QueueBrowser.getEnumeration()。
将 maxPageSize 从 200 更改为 1000 会产生什么副作用?
无论如何,这会影响经纪人的业绩吗?
除了“”之外,我没有看到该属性的任何文档一次从存储中寻呼的持久消息的最大数量“ 在本页面:
http://activemq.apache.org/per-destination-policies.html
谢谢你的时间!
最大页面大小仅表示将加载到内存中的消息数量,因此影响是……它将消耗更多内存。
但从字里行间看,你这样做的原因是一种反模式。作为应用程序一部分的队列浏览实际上是对消息传递的滥用 - 消息队列在被视为队列时效果最佳。先入先出。不是作为您扫描以查看消息是否已到达的数组。
您最好使用每条消息,并且:
- 根据它们的有效负载将它们分类到一堆其他队列中,然后以不同的方式处理第二级队列,或者
- 将有效负载存储到数据库中并根据内容进行选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)