5

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

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

我猜想这是一个足够频繁的场景,已经有解决方案解决它。是否有任何帮助框架/库可以通过 HTTP 进行此类访问?

4

2 回答 2

4

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

它有很好的文档,也可以看看我的展示

于 2011-07-01T06:43:59.120 回答
0

如果您的服务器托管在 Linux/Unix 上,您可以设置到它的端口转发(使用 putty、ssh 或其他工具)。然后启动 JConsole 并指定本地主机和端口以将请求引导到远程服务器。SSH 端口转发的设置非常简单,您可以在 Web 上找到大量示例。

于 2011-07-02T14:47:46.347 回答