类似于Spring JMX导出器的JMX导出框架

5
有没有类似于Spring JMX exporter的东西,但不使用Spring框架? SimpleJMX看起来还不错,但似乎是由单个人推动的非常年轻的框架。
我需要将大量属性、方法和类公开为JMX,但不想在JMX API上搞事情并编写大量的JMX接口。
而且项目中无法引入Spring(以防你问)。非常感谢您提供任何提示或想法 :-)
2个回答

2

我在commons-dbcp-jmx中发现了org.weakref.jmxutils库。请查看ManagedBasicDataSource.java获取示例:

@Managed(description = "The current number of active connections that have been allocated from this data source.")
public synchronized int getNumActive() {
    return super.getNumActive();
}

我自己从未使用过那个库,但它似乎可以工作。


谢谢Tomasz。这听起来非常有用。我会尝试一下并将其与SimpleJMX进行比较。似乎JMXUtils由单个人维护,但在github上很活跃。所以至少还有其他选择 :-) - qupera

2

好的,我已经快速评估了SimpleJMXJMXUtils。两者都能够正常工作,并且与Spring JMX exporter非常相似。然而,在我的情况下,我发现JMXUtils更易于使用。

使用JMXUtils,将MBeans注册/注销到已启动的平台MBean服务器非常容易。在我的情况下,我正在使用GlassFish V3作为应用程序服务器,并且不想为自己的mbeans启动另一个MBean服务器。

据我所知,SimpleJMX的API不允许这样做,您只能使用SimpleJMX API启动另一个MBeanServer并注册创建的mbeans(使用API非常容易),或者尝试将mbeans注册到平台mbean服务器中。后者有点复杂,因此我决定使用JMXUtils。

JMXUtils的缺点是bean名称的操作。SimpleJMX使用注释中的属性(domainName、beanName),这非常有用,但是使用mbean domains时,您必须知道命名mbeans的语法。总的来说,这不是什么大问题,但对我来说,SimpleJMX的解决方案更好。

归根结底,这两个库都很出色并能够胜任其工作。我决定使用JMXUtils。


值得一提的是,SimpleJMX确实允许您使用平台MBean服务器。 - Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接