当队列中的消息数量> 100K时,如何使用JMS选择器浏览ActiveMQ队列

问题描述 投票:0回答:1

我有一个 ActiveMQ (AmazonMQ) 队列,通常在任何给定时间存储 100-150K 条消息,然后将它们设置为在 24 小时期限 (JMSExpiration) 后过期。我想使用 JMS 选择器(例如

JMSTimestamp > 1711198800000
)浏览所述队列。

不幸的是,此类 JMS 查询似乎仅跨越队列中的前 400 条消息,并且似乎无法查询队列中超出该深度的所有其他消息。我尝试过使用 JMSToolBoxamazonmq-cli,但这两种工具似乎都无法超出上述限制进行查询。

我注意到,如果我一次查询一个页面,使用前面提到的 JMS 选择器查询,以拾取上一个结果集的最后一条消息停止的位置,我可以“前进”查询游标(如果确实存在这样的事情),直到我得到所需的结果,但是当队列中存在大量消息时,这是不切实际的。我在网上搜索了任何可以证实这种行为的内容,但到目前为止一无所获。以前有人解决过这个问题吗?

jms activemq-classic amazon-mq jmstoolbox
1个回答
0
投票

查看

maxBrowsePageSize
,其定义为:

浏览器一次从商店页面调入的最大消息数。

默认为

400

请记住,

maxBrowsePageSize
值越大,浏览消息消耗的内存就越多。最终,您可能会发现通过将消息代理视为数据库来使用反模式。

© www.soinside.com 2019 - 2024. All rights reserved.