0

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

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

我也在使用 XML 文件来创建路由。然后在 Java 中创建组件/端点。(使用 dispatch/acquire 函数)。

或者有没有办法创建自定义消息解析?我对 apache 骆驼相当陌生。

提前致谢。

4

2 回答 2

2

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

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

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

于 2013-01-01T15:39:33.830 回答
2

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

它支持批量操作,所以你没有闲聊等。

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

于 2013-01-02T14:07:55.587 回答