我想将MXBean作为消息从一个端点发送到另一个端点。 Apache Camel中已包含的JMX消息格式是否支持此功能?
我的项目涉及到在本地计算机上获取JVM的MXBean。我将使用CompilationMXBean,MemoryMXBean等.... [在java.lang.management。*]中找到以获取JVM信息。
我也在使用XML文件来创建路由。 然后用Java创建组件/端点。( 使用调度/获取功能)。
或者有没有办法创建自定义消息解析? 阿帕奇骆驼相当新。
提前致谢。
答案 0 :(得分:2)
Camel中的JMX组件实际上是为了传递JMX通知。 MXBeans不能作为消息本身通过,但如果我理解你要做的事情,有几种方法可以将数据采样作为Camel消息传递:
将封装的引用传递给端点,该端点将引用解释为对引用的MBeanServer / MXBean的一个或多个JMX调用以获取指定的值。引用可以通常编码为JMXServiceURL,ObjectName以及属性名称或操作名称/参数对的列表。
或者,您可以创建一个安装在目标JVM上的新MXBean,它定期对所有必需的本地MXBean数据进行采样,聚合并将其作为JMX通知发出。然后,标准的Camel JMX组件可以处理发出的通知。
答案 1 :(得分:2)
您可能还需要查看jolokia(http://www.jolokia.org/) - 这是一个很好的项目,可以更轻松地在本地和远程JVM中与JMX集成,并使用更简单的API基于REST和JSON。
它支持批量操作,所以你没有聊天的电话等。
我们在hawt.io项目(http://hawt.io/)中使用Jolokia从基于Web的控制台收集运行Camel,ActiveMQ,ServiceMix等远程JVM的数据。