不多说无用的话,以访问Kafka的Metrics统计信息为例,简单记录如何访问JVM中Java Metrics信息。
代码仅是流程示例,不保证编译通过。
import javax.management.JMX;
import javax.management.remote.JMXServiceURL;
import javax.management.ObjectInstance;
import java.net.MalformedURLException;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.ReflectionException;
import javax.management.MalformedObjectNameException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.MBeanInfo;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
...
String jmxServiceURL = "service:jmx:rmi:///jndi/rmi://" + "127.0.0.1" + ":" + "8888" + "/jmxrmi"; // "127.0.0.1"是JVM运行的机器IP,"8888"是JMX端口号,这里仅是举例
JMXServiceURL jmxURL = null;
JMXConnector jmxc = null;
MBeanServerConnection jmxs = null;
ObjectName mbeanObjName = null;
Iterator sampleIter = null;
Set sampleSet = null;
jmxURL = new JMXServiceURL(jmxServiceURL);
try{
jmxc = JMXConnectorFactory