`
淘气天空lc
  • 浏览: 48090 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JMX(一)-------MBean server

    博客分类:
  • JVM
阅读更多

JMX(JAVA Management Extensions)技术是java5的新特性,它提供一种简单,标准的方式去管理应用程序,设备,服务等资源。
1什么是JMX
    JMS定义了一些设计模式,api和一些服务来进行应用程序和网络的监控,这些都是基于java语言环境的。
使用JMS技术,资源被一种叫做MBeans(Managed Beans)监控,这些MBean都在一个核心对象管理server上注册。叫做MBean server.
2.为什么要使用JMS
JMS给java开发者提供了自由的方式去监控java代码,创建智能java agents,实现分布式管理的中间件和管理者,并且能够快速整合这些方案到的管理和监控系统。
通过一个简单的例子来创建一个JMX agent来管理MBean。

首先创建一个MBean接口:

 

public interface HelloMBean {
    public void sayHello();
    public int add(int x,int y);
    public String getName();
    public void setCacheSize(int size);
    public int getCacheSize();
}
根据JMX描述,MBean接口包括一些可读或者可写的属性,还有一些定义好的方法,这些方法能够被MBean管理应用程序调用。

 

实现类,类名必须为接口sufixMBean的前缀。也就是Hello。如果不按这个命名注册MBean就会有问题。

 

public class Hello implements HelloMBean {
    //可读属性 不可写
    private final String name = "gittudou";
    private int  DEFUALT_CACHE_SIZE = 200;
    //可读写属性
    private int cacheSize = DEFUALT_CACHE_SIZE;

    public void sayHello() {
        System.out.print("hello jmx");
    }

    public int add(int x, int y) {
        return x+y;
    }

    public String getName() {
        return this.name;
    }
    //使用synchronized 同步控制 防止多个线程同时调用set方法
    public synchronized void setCacheSize(int size) {
       this.cacheSize = size;
        System.out.println("Cache size now "+this.cacheSize);
    }
    public int getCacheSize() {
        return this.cacheSize;
    }
}
 现在一个简单的MBean类写好了。然后需要再MBean server上注册

 

 

public class Main {
    public static  void  main(String args[]) throws  Exception{
        //获取MBeanServer  如果没有MBean server存在那么下面会自动调用ManagementFactory.createMBeanServer()
        MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
        //包名加 类名 创建一个ObjectName
        ObjectName name = new ObjectName("git.tudou.manage.jmx.test.essential:type=Hello");
        //创建一个Hello实例
        Hello mbean = new Hello();
        //在MBean server上注册MBean
        mBeanServer.registerMBean(mbean,name);
        System.out.println("Waiting forever...");
        //线程等待 management 操作 
        Thread.sleep(Long.MAX_VALUE);
    }
}
 执行这个main方法,接下来我们可以通过JDK提供的一个jconsole去连接这个本地进程。打开MBean,点击Hello

 这是一个简单的MBean,使用jconsole去连接,当然也可以使用RMI进行远程连接MBean server,来进行管理和执行操作。在我的代码中还有几种类型的MBean,比如MXBean,加入notification的MXBean,这里没有提到如何自己连接MBean server,接下来用自己实现的代码连接MBean server.
代码附件
 
 
 
  • 大小: 124.7 KB
分享到:
评论

相关推荐

    jmxri-1.2.1.jar+jmxtools-1.2.1.jar

    2. MBean Server:MBean服务器是JMX架构的核心,负责管理MBeans,处理MBean之间的交互,并提供与外部系统的接口。 3. JMX Connectors:JMX连接器允许客户端与MBean服务器通信,支持RMI、HTTP、HTTPS等多种协议。 4...

    cmdline-jmxclient-0.10.3.jar + zabbix tomcat监控模板

    JMX是一种标准的Java技术,用于管理和监控Java应用程序的运行状态,包括内存使用、线程信息、MBean(管理beans)等。 1. **JMX基础**: - JMX是Java平台的一个核心组件,它提供了一种统一的方式来管理和监控应用...

    cmdline-jmxclient-0.10.3.jar

    `cmdline-jmxclient` 提供了一个命令行界面,使得用户无需编写代码就能与JMX服务器交互,执行查询、获取或修改MBean的属性、调用MBean的操作等。 在Zabbix中集成`cmdline-jmxclient`,可以实现对Java应用的指标收集...

    jmxri-1.2.1.jar

    - **MBean Server**:是JMX的核心组件,它负责创建、注册和管理MBeans。 - **属性和操作**:MBeans具有属性(代表状态信息)和操作(允许执行某些功能)。 - **通知**:MBeans可以发送通知来报告重要事件。 - **代理...

    jmx-1_2_1-ri.zip jmx_remote-1_0_1_03-ri.zip jmx-1_1-mr-spec.zip

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备等资源。这里提到的三个ZIP文件包含了不同版本的JMX实现和规范,分别是: 1. **jmx-1_2_1-ri.zip**:这...

    jmx依赖jar包 jmxtools-1.2.1.jar jmxri-1.2.1.jar

    1. **MBean Server**: 这是JMX的核心,它存储并管理MBeans,处理MBean的生命周期,并执行MBean的操作。 2. **MBeans**: MBeans是JMX中的管理实体,可以代表任何可管理的对象,如系统服务、应用程序组件或者硬件资源...

    Java分布式应用学习笔记09JMX-MBean的介绍

    MBean,即Managed Bean,是在JMX(Java Management Extensions)框架中用于管理资源的一种特殊Java对象。通过MBean,可以方便地对应用程序进行监控与管理。在Java分布式应用的学习过程中,了解MBean的基本原理和使用...

    jmx-1_2_1-ri.jar

    2. **MBean Server**:MBean服务器是JMX架构的核心,它负责注册和管理MBeans,处理客户端请求,并执行对MBeans的操作。 3. **Management Interfaces**:这些接口定义了MBean的属性、操作和通知,使得管理者可以控制...

    jmx-1.2.1(jmxri+jmxtools) jar

    Java Management Extensions(JMX)是Java平台上的一个标准,它提供了一种管理和监控应用程序、操作系统、网络设备和其他Java应用程序的方式。这个"jmx-1.2.1(jmxri+jmxtools) jar"包含了JMX的两个核心组件:JMX ...

    jmxri.jar和jmxtools.jar 1.2.1

    - **MBean Server**:MBean Server是JMX架构的核心,负责管理MBean的生命周期,包括创建、注册、查找、删除MBean,以及调用MBean的方法。 - **MBean操作和属性**:MBean的操作和属性定义了MBean的功能和状态。属性...

    JDK18-java-management-extensions-guide.pdf

    JMX API提供了一组接口和类,用于访问和控制MBean Server和MBean。主要包括: 1. MBeanServerConnection:用于连接MBean Server的接口。 2. MBeanServer:MBean Server的接口,提供了对MBean的管理和访问接口。 3. ...

    jmx-jvm配置

    2. **MBean Server**: MBean Server是JMX框架的核心,它负责注册、管理和查询MBeans,以及执行MBean的操作。 3. **Management Interface**: 这是MBean提供的接口,定义了可管理属性、操作和通知。 4. **JMX ...

    JMX官方文档 - 概览,入门,规范

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备等资源。在JDK1.6版本中,JMX已经成熟并被广泛使用。本篇文章将深入探讨JMX的基本概念、核心组件、功能...

    granite-server-activemq-3.0.4.GA.zip

    总的来说,"granite-server-activemq-3.0.4.GA.zip" 和 "jmx-publisher.zip" 的组合提供了一个深入了解和实践Java消息服务及JMX管理的绝佳环境。无论是对ActiveMQ的深入学习,还是对JMX工具开发的探索,都能从中获益...

    jmx简单实例,附带jar包完整项目

    提供的项目应该包含一个简单的JMX应用,展示了如何创建MBean、注册到MBean服务器,以及如何通过JConsole等工具进行远程访问和监控。项目中的"使用说明"将指导你如何运行这个示例,包括导入必要的库,配置MBean ...

    jmx监控weblogic,tomcat,websphere源码

    3. **Management Clients**: 这些是使用JMX API与MBean Server交互的应用程序。在本项目中,"ops-container"可能就是一个管理客户端,它连接到WebLogic、Tomcat和WebSphere的MBean Server,并执行监控任务。 4. **...

    jmx_remote-1_0-fr-ri

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备。它提供了一种统一的方式来创建、配置、查询和控制管理资源,使得开发者可以轻松地将管理功能集成到...

    JMX-jmxapp.rar

    通过分析`jmxapp`的源码,我们可以学习如何在实际项目中集成和使用JMX,包括如何定义MBeans、如何在MBean Server上注册和操作MBeans,以及如何设计和实现安全的JMX通信。 此外,对于开发者而言,理解JMX的价值在于...

    jmx mbean学习 jmxtools下载

    JMX 1.2.1 Reference Implementation(重点) Include com.sun.jdmk.comm.HtmlAdaptorServer class http://www.sun.com/software/jdmk/ Downloads, sun-jdmk-runtime-5.1-b34.2.zip/SUNWjdmk/5.1/lib/jdmkrt.jar

Global site tag (gtag.js) - Google Analytics