3

我是 JMX 的新手。我开发了一个 Web 服务,使用 Glassfish 作为服务器。现在我想监控我的应用程序;

我的第一个想法是使用 Jconsole 和 JVM 作为远程监控工具。继续我的研究后,我发现这篇文章:

http://www.javacodegeeks.com/2012/02/client-side-server-monitoring-with.html

通过 HTTP 替代方法访问 JMX

这表明我必须使用像 Jolokia 这样的桥,我显然不明白原因。JConsole + mbeans 还不够?

我继续我的研究,并使用他们的示例创建了一个 java 项目:

  public static void main(String[] args) throws MalformedObjectNameException, J4pException {
        J4pClient j4pClient = new J4pClient("http://localhost:8080/jolokia/");
        J4pReadRequest req = new J4pReadRequest("java.lang:type=Memory",
                "HeapMemoryUsage");
        J4pReadResponse resp = j4pClient.execute(req);
        Map<String, String> vals = resp.getValue();
        System.out.println("Memory usage: used: " + vals);

    }

它起作用了,我收到了一些与我的使用内存有关的消息。但是,我不知道目的是什么。

监控我的 Web 服务的最佳方式是什么?

4

1 回答 1

4

我推荐使用 JVisualVM。它真的很容易使用并且提供了很好的信息。只需启动您的应用程序,然后启动 JVisualVM,它就会检测到正在运行的 java 应用程序。您可以单击它以图形形式获取各种信息。使用它来监控内存、线程、垃圾收集和创建堆转储。

您提到的 Jolokia 工具提供了一种监控影响较小的应用程序的方法,但您似乎需要进行更多编码。JVisualVM 提供了大量开箱即用的信息。

你可能需要考虑 JVisualVM 对性能的影响,但我一开始不会担心,除非你的网站有很高的点击率。您还可以选择要监控的内容以降低影响。

于 2014-12-27T12:54:52.530 回答