activemq - 是否可以通过 Jolokia API 从 ActiveMQ 队列中检索超过 400 条消息?
问题描述
我在 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 获取这些统计信息,那同样可以。
任何输入都会很棒!
解决方案
推荐阅读
- akka - akka 和最多一次消息语义的好处
- sql - 使用 VBA 在 oracle 查询中创建日期变量
- tabs - 无法在新 Chromium EDGE 中独立于 Tab 到 Tab 设置 IME 键盘输入方法
- assembly - 当寄存器操作数与指令的大小后缀不匹配时
- sql-server - SSIS 数据流无法获取连接,即使它在控制流的早期进行了
- javascript - JS beforeunload 在 window.addEventListener('beforeunload', (evt){}) 上不起作用
- c++ - 线应该是什么意思?
- jquery - JQuery 添加对不同值名称的支持
- swift - 如何使用 Swift 在 LLDB 中打印等效的 #line #file #function?
- javascript - 如何将 img src 与 React 中的异步函数的结果映射?