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

时间:2013-01-01 00:45:14

标签: java apache-camel

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

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

我也在使用XML文件来创建路由。 然后用Java创建组件/端点。( 使用调度/获取功能)。

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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

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