2013-01-01 56 views
0

消息我想从一个端点发送的MXBean的消息到另一个。 Apache Camel中已包含的JMX消息格式是否支持这种格式?是否有可能通过一个MXBean的在Apache的骆驼

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

而且我使用的是XML文件来创建路线。 然后使用Java创建组件/端点( 使用dispatch/acquire功能)。

还是有一种方法来创建自定义消息解析? 对于apache骆驼来说相当新颖。

在此先感谢。在骆驼

回答

2

的JMX组件真的打算绕过JMX通知。该MXBean的不是通行的消息本身,但如果我明白你想要做什么,有几个方法可以传递数据采样骆驼消息:

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

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

+0

你的第二点非常清楚。但我并没有完全理解你在第1点的含义。 我有一个替代解决方案,用于映射我将从Mxbean使用的每个信息,并将该地图作为消息传递。 –

+0

这就是我的意思。您在地图中代表您正在传递消息的MXBean调用。它对你有用吗? – Nicholas

+0

好的。还没有尝试过。我正在对我的一个模块进行一些更改。在我可以继续并处理JNA消息传递的信息之前,需要添加更多的功能。我一定会更新我做了什么。谢谢 –

2

您可能还需要看一看jolokiahttp://www.jolokia.org/) - 它是一个伟大的工程,使之更容易与JMX在本地和远程JVM集成和使用一个简单的API,它可以是基于REST和JSON 。

它支持批量操作,所以你不要有繁琐的电话等

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

+0

问题在于,我只限于骆驼。 –

+1

我不明白你的意思是“只有骆驼”吗?你的意思是只有1个JVM? HAWT。io与JVM通信(通常是提供Web应用程序的JVM),但我们正在添加Fuse Fabric集成,以便您可以在每个集成视图中查看整个Camel's进程集群。 –

+0

不,我的意思是,这个项目不是一个私人项目,而是一个公司项目。所以我不能转移我必须使用的技术。必须与在骆驼下创建的自定义基类完成。 –