我有一个 ActiveMQ (AmazonMQ) 队列,通常在任何给定时间存储 100-150K 条消息,然后将它们设置为在 24 小时期限 (JMSExpiration) 后过期。我想使用 JMS 选择器(例如
JMSTimestamp > 1711198800000
)浏览所述队列。
不幸的是,此类 JMS 查询似乎仅跨越队列中的前 400 条消息,并且似乎无法查询队列中超出该深度的所有其他消息。我尝试过使用 JMSToolBox 和 amazonmq-cli,但这两种工具似乎都无法超出上述限制进行查询。
我注意到,如果我一次查询一个页面,使用前面提到的 JMS 选择器查询,以拾取上一个结果集的最后一条消息停止的位置,我可以“前进”查询游标(如果确实存在这样的事情),直到我得到所需的结果,但是当队列中存在大量消息时,这是不切实际的。我在网上搜索了任何可以证实这种行为的内容,但到目前为止一无所获。以前有人解决过这个问题吗?
maxBrowsePageSize
,其定义为:
浏览器一次从商店页面调入的最大消息数。
默认为
400
。
请记住,
maxBrowsePageSize
值越大,浏览消息消耗的内存就越多。最终,您可能会发现通过将消息代理视为数据库来使用反模式。