`
onlyor
  • 浏览: 377363 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java之JMX

    博客分类:
  • jmx
 
阅读更多

        JMX是一种JAVA的正式规范,它主要目的是让程序有被管理的功能,那么怎么理解所谓的“被管理”呢?试想你开发 了一个软件(如WEB网站),它是在24小时不间断运行的,那么你可能会想要“监控”这个软件的运行情况,比如收到了多少数据,有多少人登录等等。或者你 又想“配置”这个软件,比如现在访问人数比较多,你想把数据连接池设置得大一些。

 

  当然,你也许会专门为这些管理来开发软件,但如果你借助JMX,则会发现创建这样的管理程序是如此简单。因为你 无需为管理程序来开发界面,已经有通用的JMX管理软件,如MC4J,或者是用一般都附带提供的HTML网页来管理,你要做的仅仅是将自己要被管理和监控 类的按照JMX规范修改一下即可。中间件软件WebLogic的管理页面就是基于JMX开发的,而JBoss则整个系统都基于JMX构架。

 

 

 

HelloWorld实例
1、Hello是一个需要被管理的类(普通类)

public class Hello implements HelloMBean {
    private String name;
    
public String getName() {
        
return name;
    }
    
public void setName(String name) {
        
this.name = name;
    }
    
public void printHello() {
        System.out.println(
"Hello World, " + name);
    }
    
public void printHello(String whoName) {
        System.out.println(
"Hello , " + whoName);
    }
}          

 
2、要管理Hello则必须创建一个相应MBean,如下:

public interface HelloMBean {

    public String getName();
    
public void setName(String name);
    
public void printHello();
    
public void printHello(String whoName);
 

说明:包含在MBean中方法都将是可以被管理的。MBean起名是有规范的,就是原类名后加上MBean字样。
 
3、创建一个Agent类

import javax.management.MBeanServer;

 

import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import com.sun.jdmk.comm.HtmlAdaptorServer;

public class HelloAgent {

    
public static void main(String[] args) throws Exception {
        MBeanServer server 
= MBeanServerFactory.createMBeanServer();

        ObjectName helloName 
= new ObjectName("chengang:name=HelloWorld");
        server.registerMBean(
new Hello(), helloName);
        System.out.println(server.getAttribute(helloName, "Name"));

        ObjectName adapterName 
= new ObjectName("HelloAgent:name=htmladapter,port=8082");
        HtmlAdaptorServer adapter 
= new HtmlAdaptorServer();
        server.registerMBean(adapter, adapterName);

        adapter.start();
        System.out.println(
"start.....");

    }

 

说明:

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

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

 

如果代码报错请把附件中的jar加到classpath下。

分享到:
评论

相关推荐

    java jmx agent不安全的配置漏洞如何改进(由浅入深代码范例和详细说明).docx

    Java JMX Agent 不安全的配置漏洞如何改进 Java JMX(Java Management Extensions)是一种用于监控和管理应用程序的工具,通过使用 JMX Agent,我们可以暴露应用程序的管理和监控接口,从而允许外部管理应用程序的...

    java jmx agent不安全的配置漏洞.md

    java jmx agent不安全的配置漏洞

    Java 版jmx 监控中间件weblogic

    Java版 jmx 监控weblogic 生成html

    java jmx操作示例源码

    Java JMX(Java Management Extensions,Java管理扩展)是一种标准,用于在Java应用程序中实现管理和监控。JMX允许开发者创建、注册和管理MBeans(Managed Beans),这些MBeans代表了应用程序中的可管理资源,如系统...

    JAVA JMX 学习资料

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、系统和服务。JMX允许开发者创建可管理的组件,这些组件可以暴露其状态、性能指标和操作,以便于通过管理工具进行监控和配置...

    Java And JMX - Building Manageable Systems.rar

    You will find this book to be useful long after new versions of JMX become available because the concepts introduced here are classic applications of management concepts and technologies to the Java ...

    JVM JMX java

    JMX(Java Management Extensions)是Java平台的一部分,用于管理和监控应用程序,包括JVM自身。在这个主题中,我们将深入探讨JVM与JMX在Java环境中的交互以及它们如何增强Java应用的管理和维护能力。 **JVM详解** ...

    Java And JMX - Building Manageable Systems

    Java™ and JMX: Building Manageable Systems By Heather Kreger, Ward Harold, Leigh Williamson Publisher : Addison Wesley Pub Date : December 30, 2002 ISBN : 0-672-32408-3 Pages : 592

    Zabbix通过JMX方式监控java中间件

    ### Zabbix通过JMX方式监控Java中间件的关键知识点 #### 一、Zabbix与JMX监控简介 **Zabbix**是一款开源的企业级监控工具,它能够监控网络中的各种硬件资源和软件服务的状态,并且提供了丰富的功能,如自动发现、...

    JMX配置与使用

    Java Management Extensions (JMX) 是Java平台上的一个标准管理框架,用于监控和管理应用程序、操作系统、网络设备等。它提供了一种标准化的方式来暴露管理和监控功能,使得开发者可以创建可管理和自监控的应用程序...

    jmx_examples.rar_Java 8_jmx_jmx examples_jmx main_jmx_examples

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、服务和设备。JMX允许开发者创建管理接口,以便对运行时的组件进行动态监控和管理。在这个"jmx_examples.rar"压缩包中,包含...

    java of core jmx

    Java核心JMX(Java Management Extensions)是Java平台中用于管理和监控应用程序、系统和服务的重要工具。JMX提供了一种标准的框架,使得开发者可以创建管理接口,以便于远程监控和管理Java应用程序。它允许我们对...

    Hbase和Hadoop JMX监控实战

    JMX(Java Management Extensions)是一种Java平台标准,用于管理和监控应用程序。在本实战中,我们将深入探讨如何利用JMX对HBase和Hadoop进行监控,以确保系统的稳定性和性能。 首先,我们需要理解HBase。HBase是...

    基于Java+JMX的SNMP数据采集的研究与实现.pdf

    【标题】: "基于Java+JMX的SNMP数据采集的研究与实现" 【描述】: 本研究专注于探讨如何利用Java编程语言与Java Management Extensions (JMX)技术来实现SNMP(Simple Network Management Protocol)数据的采集。SNMP...

    jmx_prometheus_javaagent-0.12.0.jar

    代理Java包,用于生成JVM的健康的数据,jmx_prometheus_javaagent-0.12.0.jar

    Addison Wesley - Java and JMX (2002).chm

    Addison Wesley - Java and JMX (2002).chm

    java jmx 远程监控

    java jmx 远程监控

    TongWeb7的JMX监控.doc

    在运维过程中,JMX(Java Management Extensions)监控是一个非常重要的工具,可以帮助我们实时查看和管理应用程序的状态,以及诊断和解决问题。本文将详细介绍如何使用 JMX 监控 TongWeb7。 首先,要开启 JMX 监控...

    基于Java JMX框架的Prometheus指标导出器.zip

    基于Java JMX框架的Prometheus指标导出器 内容概要 本项目是一个基于Java JMX框架的Prometheus指标导出器,旨在通过JMX收集和导出Java应用程序的监控指标,以便Prometheus能够抓取和分析这些数据。项目支持将JMX...

Global site tag (gtag.js) - Google Analytics