我想创建一个像JConsole这样的应用程序。可能吗?如果是,那么需要在JVM级别进行哪些更改?我打算使用Spring-Boot。据我所知,JMX默认启用。我是否需要在Spring-Boot应用程序中配置额外的任何内容才能访问默认公开的JMXBeans?
这里我不是试图暴露任何MBean,而是试图访问那些已经被JVM公开的bean。如何实现呢?
答案 0 :(得分:2)
JConsole是一个符合JMX的监控和管理应用程序。架构非常简单。它是client-server architecture。客户端是远程应用程序(示例JConsole或您要构建的应用程序),服务器是JMX代理。在您的情况下,您希望建立自己的客户端。
我想创建一个像JConsole这样的应用程序。可能吗?
是的,有可能。
如果是,那么需要在JVM级别进行哪些更改?
JVM级别的变化是什么意思?您只是创建一个使用特定协议连接到服务器(JMX代理)的客户端应用程序。远程方法调用(RMI)是JConsole用于连接到JMX代理的协议。如果您想使用RMI进行通信,则不必在服务器端执行任何操作。但是,如果您想使用其他协议进行通信,则可以定义自己的协议适配器。
据我所知,JMX默认启用。
从Java SE 6开始。但您只能在本地中监控它。对于connection from a remote machine,您需要定义一个RMI端口以开始侦听传入连接。
这里我并没有尝试公开任何MBean,而是试图访问那些已经被JVM公开的bean。如何实现呢?
请查看此链接中的示例 - Mimicking Out-of-the-Box Management Using the JMX Remote API。它向您展示了如何创建连接到远程JMX代理并访问MBean的简单客户端应用程序。这应该引导你朝着正确的方向前进。