JMX系列 - 1

简介:

1、JMX产生的理由:对超大型的超市,比如说沃尔码, 每天会有大量的不同产品的进货、出货动作,那超市是如何来管理这么大量的千差万别的物品的呢? 答案是:抽象为条形码。 同样, 在Java中,会有各种各样的对象的创建、销毁等动作,这些内容不应该是“黑洞”, 而应该监控起来,于是JMX诞生了。JMX将千差万别的对象贴上标签,具备抽象的相同属性的对象则可以进行统一模式的度量。

2、实例:

步骤一:定义MBean的接口

 
  1. package standardbeans; 
  2.  
  3. public interface HelloMBean { 
  4.     public String getName(); 
  5.  
  6.     public void setName(String name); 
  7.  
  8.     public void printHello(); 
  9.  
  10.     public void printHello(String whoName); 

步骤二:MBean的实现类

 
  1. package standardbeans; 
  2.  
  3. public class Hello implements HelloMBean { 
  4.     private String name; 
  5.  
  6.     public String getName() { 
  7.         return name; 
  8.     } 
  9.  
  10.     public void setName(String name) { 
  11.         this.name = name; 
  12.     } 
  13.  
  14.     public void printHello() { 
  15.         System.out.println("Hello World, " + name); 
  16.     } 
  17.  
  18.     public void printHello(String whoName) { 
  19.         System.out.println("Hello , " + whoName); 
  20.     } 

步骤三:MBean的启动

 
  1. package standardbeans; 
  2.  
  3. import javax.management.MBeanServer; 
  4. import javax.management.MBeanServerFactory; 
  5. import javax.management.ObjectName; 
  6. import com.sun.jdmk.comm.HtmlAdaptorServer; 
  7.  
  8. public class HelloAgent { 
  9.  
  10.     public static void main(String[] args) throws Exception { 
  11.         MBeanServer server = MBeanServerFactory.createMBeanServer(); 
  12.  
  13.         ObjectName helloName = new ObjectName("demo01:name=HelloWorld"); 
  14.         server.registerMBean(new Hello(), helloName); 
  15.  
  16.         ObjectName adapterName = new ObjectName( 
  17.                 "HelloAgent:name=htmladapter,port=8089"); 
  18.         HtmlAdaptorServer adapter = new HtmlAdaptorServer(); 
  19. adapter.setPort(8089);
  20.         server.registerMBean(adapter, adapterName); 
  21.  
  22.         adapter.start(); 
  23.         System.out.println("start....."); 
  24.  
  25.     } 

 

说明:
    * 先创建了一个MBeanServer,用来做MBean的容器
    * 将Hello这个类注入到MBeanServer中,注入需要创建一个ObjectName类
    * 创建一个AdaptorServer,这个类将决定MBean的管理界面,这里用最普通的Html型界面。AdaptorServer其实也是一个MBean。
    * chengang:name=HelloWorld的名字是有一定规则的,格式为:“域名:name=MBean名称”,域名和MBean名称都可以任意取。

   4、运行HelloAgent,然后打开网页:http://localhost:8089/,单击“name=HelloWorld”链接进入

 

【注意】

1、加入jmxtool.jar,下载地址:http://www.findjar.com/jar/mule/dependencies/jmxri/jmxtools/1.2/jmxtools-1.2.jar.html;jsessionid=41165C48DEBD02D487DC574561BBD10D

或者

 
  1. <dependency> 
  2.     <groupId>com.alibaba.external</groupId> 
  3.     <artifactId>jmx.tools</artifactId> 
  4.     <version>0.0.0</version> 
  5.   </dependency> 

2、MBeanServer选用

注册到平台则选用:

MBeanServer server = ManagementFactory.getPlatformMBeanServer();

注册到html页面中操作,则使用:

 HtmlAdaptorServer adapter = new HtmlAdaptorServer(); 

 


本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/546014,如需转载请自行联系原作者

相关文章
|
5月前
|
监控 安全 Java
使用JMX监控Tomcat
【7月更文挑战第18天】
|
6月前
|
存储 监控 Java
JMX
【6月更文挑战第22天】
43 13
|
6月前
|
监控 Java 应用服务中间件
详解tomcat中的jmx监控
详解tomcat中的jmx监控
151 1
|
监控 Java 应用服务中间件
zabbix配置jmx监控java应用
zabbix配置jmx监控java应用
627 0
zabbix配置jmx监控java应用
|
监控 运维
Tomcat 开启JMX监控
如果需要使用Zabbix Java Gateway监控JMX,需要先打开JMX监控接口。
773 0
Tomcat 开启JMX监控
|
监控 Java
JMX监控JVM
Monitor the JVM with a JMX-compliant tool such as jconsole
5423 0
|
监控 Java 应用服务中间件
|
应用服务中间件
|
应用服务中间件 Android开发