首页 文章

是否可以在Apache Camel中将MXBean作为消息传递

提问于
浏览
0

我想将MXBean作为消息从一个 endpoints 发送到另一个 endpoints . Apache Camel中已包含的JMX消息格式是否支持此功能?

我的项目涉及到在本地计算机上获取JVM的MXBean . 我将使用CompilationMXBean,MemoryMXBean等.... [在java.lang.management . *]中找到以获取JVM信息 .

我也使用XML文件来创建路由 . 然后用Java创建组件/ endpoints (使用dispatch / acquire函数) .

或者有没有办法创建自定义消息解析?阿帕奇骆驼相当新 .

提前致谢 .

2 回答

  • 2

    Camel中的JMX组件实际上是为了传递JMX通知 . MXBeans不能作为消息本身传递,但如果我理解你要做的事情,有几种方法可以将数据采样作为Camel消息传递:

    • 将封装的引用传递给 endpoints ,该 endpoints 将引用解释为对引用的MBeanServer / MXBean的一个或多个JMX调用以获取指定的值 . 引用可以通常编码为JMXServiceURL,ObjectName以及属性名称或操作名称/参数对的列表 .

    • 或者,您可以创建一个安装在目标JVM上的新MXBean,它定期对所有必需的本地MXBean数据进行采样,聚合并将其作为JMX通知发出 . 然后,标准的Camel JMX组件可以处理发出的通知 .

  • 2

    您可能还想看看jolokiahttp://www.jolokia.org/) - 这是一个很好的项目,可以更容易地在本地和远程JVM中与JMX集成,并使用可以基于REST和JSON的更简单的API .

    它支持批量操作,所以你没有聊天的电话等 .

    我们在hawt.io项目(http://hawt.io/)中使用Jolokia从基于Web的控制台收集运行Camel,ActiveMQ,ServiceMix等远程JVM的数据 .

相关问题