在 Apache Camel 2.16 中定义自定义 JMX 属性

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前, 星球 内第2个项目《仿小红书(微服务架构)》正在更新中。第1个项目:全栈前后端分离博客项目已经完结,演示地址:http://116.62.199.48/。采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 255 小节,累计 39w+ 字,讲解图:1716 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 1300+ 小伙伴加入,欢迎点击围观

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