我是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 服务的最佳方法是什么?
我建议使用JVisualVM。 它非常易于使用,并提供大量信息。 只需启动您的应用程序,然后启动JVisualVM,它就会检测到正在运行的java应用程序。您可以单击它以图形形式获取各种信息。 使用它来监视内存、线程、垃圾回收和创建堆转储。
您提到的 Jolokia 工具提供了一种以较低影响监控应用程序的方法,但似乎你需要做更多的编码。 JVisualVM提供了许多开箱即用的信息。
您可能需要考虑JVisualVM的性能影响,但除非您的网站点击率很高,否则我一开始不会担心它。您还可以选择要监视的内容以降低影响。