JMX 简单学习
来源:互联网 发布:sqlserver 2016安装 编辑:程序博客网 时间:2024/06/13 03:29
简单理解,就是管理程序的一个协议,官方给出的答案是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务。用我们都能理解的大白话来说,JMX是一个框架,它提供了这样一种功能:通过使用JMX,我们可以实时查询应用程序中通过JMX向外公布的相应参数或者是其他应用数据,同时,我们也可以通过JMX来实时的调用应用程序使用JMX向外公布的接口,从而来实现一些操作。
JMX 简单例子:(注意 JMS 中的MBean 接口 和 Bean 对象必须在一个包内,不然根据 ObjectMBean 和 Object 无法匹配上 )
1:首先创建接口MBean,这里有个命名规则, 类名+Mbean作为接口名称,那么对象名称就是接口名称去掉 MBean,系统自动按照这个规则来匹配对象。
同时,MBean 中的方法都是通过get 和set 来获取,注意get 或 set 后第一个字母要大写。
public interface UserMBean {
public String getName();
public void setName(String name);
public void printName();
public void printName(String name);
}
2: 创建Bean对象 实现接口MBean
public class User implements UserMBean {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void printName() {
System.out.println("hello "+this.name);
}
public void printName(String name) {
// TODO Auto-generated method stub
System.out.println("你好:"+name);
}
}
3: 最重要的一点 定义 agent 层
package com.tide.bean;
import java.io.IOException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import javax.management.InstanceAlreadyExistsException;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.MalformedObjectNameException;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;
import javax.management.remote.JMXConnectorServer;
import javax.management.remote.JMXConnectorServerFactory;
import javax.management.remote.JMXServiceURL;
import com.sun.jdmk.comm.HtmlAdaptorServer;
import com.tide.agent.User;
public class UserAgent {
public static void main(String args[]) throws MalformedObjectNameException,
NullPointerException, InstanceAlreadyExistsException,
MBeanRegistrationException, NotCompliantMBeanException, IOException {
int rmiPort = 1099; // 定义端口
String jmxServerName = "TestJMXServer"; // 定义MBean 的名称
MBeanServer mbs = MBeanServerFactory.createMBeanServer(jmxServerName); // 通过工厂类获取MBeanServer,用来做MBean的容器
/**
* MBeanServer添加了一个htmladapter,这样我们就可以通过网页的方式来进行管理。
*/
HtmlAdaptorServer adapter = new HtmlAdaptorServer();
ObjectName adapterName = new ObjectName(jmxServerName + ":name=" + "htmladapter");
adapter.setPort(8082);
adapter.start();
mbs.registerMBean(adapter, adapterName);
ObjectName objName = new ObjectName(jmxServerName + ":name=" + "User");
mbs.registerMBean(new User(), objName);
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:" + rmiPort + "/" + jmxServerName);
System.out.println("JMXServiceURL: " + url.toString());
JMXConnectorServer jmxConnServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
jmxConnServer.start();
}
}
- JMX 简单学习
- jmx学习
- jmx学习
- JMX学习
- JMX 学习
- JMX学习
- JMX学习
- 【JMX学习】1、jmx入门
- 最简单jmx示例
- 最简单jmx示例
- JMX的简单使用
- JMX的简单示例
- JMX简单实例
- JMX简单例子
- 【JMX】JMX学习笔记(一)-MBean
- 【jmx学习】2、jmx之Html Adaptor
- 【jmx学习】3、jmx之RMI Adaptor
- JMX学习笔记(四) JMX RMI
- 浅谈CSRF攻击方式
- Oracle之grant授权
- VS常见编译错误
- Andrew NG 机器学习 练习1-Linear Regression
- Ubuntu16.04下安装sublime text3
- JMX 简单学习
- grep awk和sed命令详解
- js 获取元素的 html 代码
- 克隆虚拟机后,使两台虚拟机完全独立需要更改的配置
- 【线性代数】矩阵、向量、行列式、特征值与特征向量(掌握这些概念一篇文章就够了)
- 闲谈
- log4j配置详解(非常详细转载)
- swift中GCD
- Java开发中的23种设计模式详解(转)