我在 ActiveMQ 中有一个错误队列,它由 Apache Camel 的 onException 错误处理程序填充。此队列中可能有数千条消息。
我没有使用 ActiveMQ Web 控制台,而是构建了一个自定义 Web 管理员来集成来自其他组件的其他一些统计信息。因此,我也想包含来自 ActiveMQ 的统计信息。
ActiveMQ 版本:5.14.3
我查看了 Jolokia JMX API 及其操作。例如,我在代理的 Jolokia API 端点上有以下负载:
{
"type": "exec",
"mbean": "org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=test.errors",
"operation": "browse(java.lang.String)",
"arguments": ["EXCEPTION_TYPE LIKE '%jdbc%'"]
}
标头字段EXCEPTION_TYPE
已通过 Apache Camel Route 填充。目前我在这个队列中有超过 10k 条消息。我使用如上所示的有效负载向我的代理 API 端点发出了 POST 请求。虽然我有超过 10k 条消息,但这个请求只产生了 400 条消息(由于最大页面大小限制,在源代码中硬编码)。这意味着我一次无法通过 Jolokia 收到超过 400 条消息。我也尝试了 browseMessages() 方法。看起来,一般来说,它做同样的事情。
- 是否可以浏览这些消息(假设它们的数量很大,可能在 10k+ 左右)?
- 或者,是否可以对它们进行分页?我看不到相关的操作方法。
我试图看看 Hawtio 在检索所有消息时是否做了一些特别的事情。但是,结果是相同的(最多 400 条消息)。
ActiveMQ Web 控制台会获取所有消息。这可能是因为它与 ActiveMQ 项目紧密耦合。
我不仅限于 JMX/Jolokia。如果可以通过某些 API 获取这些统计信息,那同样可以。
任何输入都会很棒!