我是JMX的新手。我开发了一个Web服务,使用Glassfish作为服务器。现在我想监视我的应用程序;
我的第一个想法是使用Jconsole和JVM作为远程监控工具。在继续我的研究之后,我发现这篇文章:
http://www.javacodegeeks.com/2012/02/client-side-server-monitoring-with.html
Accessing JMX via HTTP alternatives
这意味着我必须使用一座像乔洛基亚这样的桥梁,这显然是我不明白的原因。JConsole +mbean还不够吗?
我继续我的研究,并使用他们的例子创建了一个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服务的最佳方法是什么?
发布于 2014-12-27 12:54:52
我建议使用JVisualVM。它非常容易使用,并提供了很好的信息。只要启动应用程序,然后启动JVisualVM,它就会检测到正在运行的java应用程序。你可以点击它来获取各种图形形式的信息。使用它来监视内存、线程、垃圾收集和创建堆转储。
您提到的Jolokia工具提供了一种监视影响较小的应用程序的方法,但似乎需要进行更多的编码。JVisualVM提供了大量的即时信息。
您可能需要考虑JVisualVM的性能影响,但我不会担心,首先,除非您的网站有一个高命中率。您还可以选择监视什么以降低影响。
https://stackoverflow.com/questions/27571644
复制相似问题