Apache Camel 2.16 - 具有自定义 JMX 的组件现在是标准 JMX 集之上的插件。
在即将推出的 Apache Camel 2.16 中,我进行了第二次尝试(我目前正在为 Camel in Action 第 2 版一书 撰写关于 JMX 的文章),使在组件上定义自定义 JMX 属性和操作变得更加容易,并将其添加到Camel 默认提供的标准 JMX 集。
以前,不可能将自定义 JMX 操作添加到标准集中。为了使这成为可能,您需要在自定义组件中重新公开标准的 JMX 集。
但我很高兴找到了一个 即将提交 给 Apache Camel 2.16 的解决方案。
这个简单的自定义组件(来自 Camel in Action 一书)在名为 ERP 的自定义组件上公开了一个名为 verbose 的 JMX 属性。
自定义组件公开了一个名为 Verbose 的 JMX 属性。在 Apache Camel 2.15.2 运行时使用这个组件只会显示 Verbose 属性:
但是在 Apache Camel 2.16.0 上运行的相同代码现在也具有所有默认的 JMX 属性和操作:
这也适用于您可能在路由中使用的任何自定义 bean。例如,如果您在路由 DSL 中使用 bean 调用 POJO,那么自定义 POJO 将列在 JMX 的处理器下。您在 POJO 中所要做的就是使用 Camel @ManagedResources 对其进行注释,然后使用 @ManagedAttribute 进行属性注释,使用 @ManagedOperation 进行操作。
我们现有的所有 Camel 组件(150 多个)也可以从中受益。他们将能够在 JMX 中为他们的端点、消费者、生产者等公开更多自定义信息。由于这个问题,我们过去在这方面有所保留。此任务已记录为 CAMEL-9074 。