1

我很好奇 JConsole 和 JMX 如何协同工作。具体来说,我已阅读此JConsole 指南,其中提到

jconsole uses a JMXConnector client to connect to the JMXConnectorServer in
the target application. If the application isn't started with the JMX agent
then there isn't a JMXConnectorServer and jconsole doesn't have anything to
connect too. In that case it uses a HotSpotTM VM specific mechanism to start
the JMX agent in the target VM. Once the agent is started then jconsole connects
as normal.

当我启动 jconsole 时,它​​只需要 JMX 信息的端口和主机名,所以我想知道是否可以通过任意 tcp 连接(以及任何编程语言)访问 MBean,或者 jconsole 是否有什么特别之处还干吗?

我知道如何通过 java 访问 MBean Factory,但我很好奇是否可以通过 TCP 或其他直接机制通过任意语言访问这些项目。另请参阅讨论休息连接器的链接。

4

1 回答 1

1

默认情况下,JMX 服务器通过 RMI 提供连接。这将使通过任意语言访问服务器变得很棘手。

但是,JMX 服务器不限于 RMI 作为通信协议。该架构是可扩展的,几乎可以使用任何传输协议——但它几乎需要从头开始编写。

看看Jolokia——他们做了一件非常了不起的事情,让你通过一堆协议(REST 就是其中之一)与 MBean 服务器通信,等等。

于 2013-07-15T18:05:02.767 回答