【问题标题】:How to make an application like JConsole?如何制作像 JConsole 这样的应用程序?
【发布时间】:2018-02-04 06:06:29
【问题描述】:

我想做一个像 JConsole 这样的应用程序。可能吗?如果是,在 JVM 级别需要进行哪些更改?我打算使用 Spring-Boot。据我所知,默认情况下启用 JMX。我是否需要在 Spring-Boot 应用程序中配置任何额外内容才能访问默认公开的 JMXBean?

这里我不是试图公开任何 MBean,而是试图访问那些已经被 JVM 公开的 bean。如何实现?

【问题讨论】:

    标签: spring-boot jmx jconsole


    【解决方案1】:

    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 的简单客户端应用程序。这应该会引导您朝着正确的方向前进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多