访问在 HTTP 代理服务器后面运行的启用 JMX 的应用程序

Abh*_*kar 5 java jmx remote-access proxy-server

我有一个启用 JMX 的 Java 应用程序 (Java 1.5),位于 HTTP 代理服务器后面。所以我无法直接通过 JConsole 访问它。

我想象的一个解决方案是在我的应用程序中有一个虚拟机内 JMX 客户端,它从 JMX 服务器收集统计信息和配置数据,并通过代理定期通过 HTTP 将其发布到我的外部服务器。如果需要,我的外部服务器会回复任何配置更改,并且 VM 内 JMX 客户端会将这些更改传播到 JMX 服务器,然后将这些更改应用到应用程序。

我猜想这种情况足够频繁,以至于已经有解决方案解决它。是否有任何帮助框架/库可以通过 HTTP 实现此类访问?

Tom*_*icz 4

不确定这是否是您所需要的,但有一个非常好的 JMX 到 REST 桥接器,称为Jolokia。如果将其添加到应用程序中,您将能够通过 REST 接口与 JMX 交互,该接口可像任何其他 HTTP 流量一样通过 HTTP 代理进行访问。因此,您不仅可以通过 HTTP 建立 JMX 隧道,还可以以更好的格式(基于 HTTP 的 JSON)公开它。

它有非常好的文档,也请参阅我的展示