`

JMX架构的了解 (转)

    博客分类:
  • Java
阅读更多

JMX应该说是关于网络应用治理的的框架,假如你开发了一个比较复杂的系统,无疑你要提供这个系统的自身治理 系统,JMX更多应用是体现在Server 上,假如你要使用Java开发一个自己Server或复杂的应用系统,那么推荐你基于JMX架构来开发, JBoss 3.0 weblogic等就是基 于JMX开发的符合J2EE规范的服务器软件。 
  
  了解JMX可以使你深入了解J2EE服务器, 为什么我们平时说 "EJB"是 个比较"Weight"的方案选择,其中一个原因是J2EE服务器软件本身 也是你的系统中一部分,它作为你系统的容器,对你的系统有至关重要的作用,假 如无法直接介入 治理或“调教”它,那么无疑你的系统本身存在着隐含的危险, 现在,通过JMX,你现在可以深入到你J2EE容器内部的治理了。 (似乎 国内出现了第一个自己J2ee服务器,不知道那是不是基于JMX开发的?) 
  
  J2EE并不能概括所有的应用领域,比如对速度和性 能要求极高的游戏或股票行情等系统就需要自己直接来开发Server, 假如是能够基于JMX开发,那么可以说就大大提高编写治理程序的效率,可以将你的 模块变成JMX的MBean,可以通过Agent在程序内部或者通过 WEB治理页面对你的MBean模块进行初始化 重启 以及参数设置。
  
  JMX的好处还有:可以方便整合连接现有的Java技术,如JNDI JDBC JTS及其它。非凡是能够使用Jini的查询 发现机制以及协议,我们知道,Jini提供了一种服务的查询和发现机制,这些services都可以通过JMX 来实现治理。
  
  现在我们开始JMX的了解:
  
  1.到java.sun.com首页的JMX页面,下载JMX的规定说明和Samples程序。
  2.按照JMX的说明进行一次Tutorial,了解如何加入 删除 配置一个MBean,Tutorial中是以SimpleMBean为例,那么我们能否建立一个自己的MBean?
  
  我们来做一个Hello 的MBean,这里有一个小要害点,你的class取名有个规则, 需要以MBean为结尾,如这里我们取名为HelloMbean:

public interface HelloMBean {
  
  // management attributes
  public String getName();
  public void setName(String name);
  
  // management operations
  public void print();
  
  }
 

  
  在这个Class里,有一个隐含attributes: name, 提供了set和get的方法,同时有一个操作方法print():
  
  再定义一个concrete类:
  

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

  
  
  这样一个简单的MBean就做好了,我们可以通过admin界面加入这个Hello,
  
  再按 Tutorial启动BaseAgent,在Agent Administration中参考Simple填入:

Domain: Standard_Hello_MBeans
  
Keys : name=Hello,number=1
  
Java Class: Hello
 

  
  将出现Create SUCcessful信息。进入MBean View 给Name赋值,点按Apply ,然后再按print,这是你的Hello中的方法,在控制台你会看到输出。
  
  是不是很惊异Hello中的 attributes 和operations能被动态的访问和控制? 已经隐约感到JMX的架构原理了吧?
  
  下面再深入明确一些概念:
   上面HelloMBean资源是通过admin这样的HTTP WEB界面治理,这种治理资源方式是属于JMX的Distributed服务 层, JMX 通过Distributed层能够部署和治理MBean资源。就象上面的例子,是通过HtmlAdaptor提供的HTTP WEB界面来 方面的维护治理HelloMBean.
  
  那么我们能否在程序中自动治理和部署我的MBean?当然可以,这是通过Agent层来完成,现在我们已经有了这个层次,MBean所在的资源层,
  最外面的Distributed服务层,Distributed服务层是通过Agent层来访问MBean资源的,看看下面来自Sun公司JMX规定的架构图:
  

点击查看大图


  从图中看出,Agent Level(Agent层)包括MBean Server和Agent Services,那么我们来做一个上面例子HelloMBean的Agent:
  

// CREATE the MBeanServer
  //
  System.out.println(" CREATE the MBeanServer.");
  MBeanServer server = MBeanServerFactory.createMBeanServer();
  
  // CREATE Registe HelloMBean
  //
  System.out.println(" CREATE, REGISTER a new Hello Standard_MBean:");
  HelloMBean helloMBean = new Hello();
  
  ObjectName hello_name = null;
  try {
  hello_name = new ObjectName("Standard_Hello_MBeans:name=Hello,number=1");
  System.out.println(" OBJECT NAME = " + hello_name);
  
  //将HelloMBean注册到MBeanServer中去
  server.registerMBean(helloMBean, hello_name);
  }
  catch (Exception e) {
  e.printStackTrace();
  return;
  }
 

  
  向MBeanServer注册后,以后JMX就知道有了这个HelloMBean资源。
  
   治理一个agent的MBean资源或使用它提供的服务必须通过一个protocol adaptor 或者connector,adaptor 或者 connector属于Distributed layer level(Distributed服务层),我们上面例子中通过HTTP WEB界面治理 HelloMBean就是浏览器通过HtmlAdaptor这个adaptor来实现的。
  
  通过本篇文章,你应该大体了解了JMX的架构和一些原理和应用,再深入可以研究SUN的JMX Specification.

分享到:
评论

相关推荐

    面试官问我 JMX 了解不,我说:什么? - 知乎1

    在JMX架构中,MBean(Managed Bean)扮演着核心角色。MBean就像JavaBean一样,封装了可管理资源的状态和操作,使得管理工具可以通过JMX接口与之交互。JMX支持四种类型的MBean:Standard MBean、Dynamic MBean、Open ...

    jmx-1.2.1(jmxri+jmxtools) jar

    在JMX架构中,主要有三个关键组件:MBeans(Managed Beans)、Servers和Agents。MBeans代表了被管理的资源或服务,它们是JMX的核心对象,提供了操作和获取状态的方法。服务器(Server)是托管MBeans的地方,而代理...

    jmx监控weblogic,tomcat,websphere源码

    2. **MBean Server**: 所有MBeans都在MBean Server中注册,这个服务器是JMX架构的中心,负责创建、注册和管理MBeans。 3. **Management Clients**: 这些是使用JMX API与MBean Server交互的应用程序。在本项目中,...

    JMX1.4规范中文版

    JMX架构的核心思想在于将被管理的资源抽象为模型化组件(Managed Beans,简称MBeans),并通过代理(Agent)层进行统一管理。JMX定义了三层架构:设备层、代理层和部署服务层,每一层都有自己的组件和服务,共同构成...

    jmxdemo.rar

    MBean服务器是JMX架构的核心,它存储和管理MBeans,处理MBean之间的交互。代理则允许远程访问MBean服务器,使得在不同网络环境下的系统间可以进行管理操作。 在jmxdemo中,服务端部分通常会实现MBeans,注册它们到...

    《jmx技术介绍》配套源代码

    JMX架构由管理代理(MBeans)、服务提供者接口(MBean Server)和管理客户端三部分组成。MBeans代表可管理的对象,它们可以是简单的数据点或复杂的系统服务。MBean Server是一个运行在Java虚拟机中的核心组件,它...

    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...

    JMX开发入门

    图二进一步细化了JMX架构,显示了不同类型的连接器如HTTP、RMI和SNMP如何接入JMX Agent。 通过了解这些基础知识,开发者可以开始构建自己的JMX解决方案,监控和管理Java应用,提升系统的可维护性和可扩展性。例如,...

    JMX入门的好资料啊

    MBean服务器是JMX架构的核心,它负责注册、存储和管理MBeans。最后,代理允许远程访问和管理MBeans,使你能够在不同的网络环境中跨进程或跨机器管理资源。 JMX使用三种类型的MBeans:标准MBeans、动态MBeans和模型...

    jmx资料

    MBean服务器是JMX架构的中心,它负责注册MBeans、查找MBeans、执行MBean的操作以及处理MBean之间的关系。一个Java虚拟机可以有一个或多个MBean服务器,而MBean服务器之间可以通过JMX连接器进行通信。 4. **JMX连接...

    java jmx操作示例源码

    2. **MBean服务器**:MBean服务器是JMX架构的一部分,它负责注册和管理MBeans。在Java中,`com.sun.jmx.mbeanserver.JMXMBeanServer`类提供了一个默认的MBean服务器。 3. **注册MBean**:为了使MBean可供管理,我们...

    jmx1.4规范.pdf

    因此,这份中文版的 JMX 1.4 规范文档对于那些希望深入了解 JMX 的中国开发者来说是非常宝贵的。 #### 二、JMX 架构概述 JMX 的架构主要由三个层次组成: 1. **设备层**:这是 JMX 架构中最底层的部分,负责处理...

    JMX IN ACTION(二)

    JMX架构由三个主要部分或层组成,共同提供Java管理解决方案。这三个层次如表2.1所示: **表2.1 JMX组件的三个层次** 1. **仪表层(Instrumentation Layer)**:包含MBeans及其可管理的资源。MBeans(Managed Beans...

    JDK11-java-management-extensions-guide.pdf

    Oracle Corporation提供的JDK11 Java管理扩展指南涵盖了JMX架构、MBean Server、MBean、JMX连接器等方面的详细信息,帮助开发人员快速了解JMX技术。 此外,JDK11 Java管理扩展指南还提供了详细的 license agreement...

    论文研究-JMX技术在网络监控中的应用.pdf

    代理层是JMX架构中的中间件,它负责收集来自被管理资源的信息,并将管理信息提供给管理应用程序。代理可以分为三类:仪器级(Instrumentation Level)、代理级(Agent Level)和服务级(Distributed Services Level...

    jmx入门

    2. **MBean Server**:MBean Server是JMX架构的核心,它负责注册、管理和操作MBean。MBean Server提供了一个统一的接口,使得管理工具可以与各种MBean进行交互。 3. **MBean操作和属性**:每个MBean都有一系列的...

    jmx tool jar 备用

    MBeanServer是JMX架构的核心,它负责管理MBeans,并提供查询、通知和远程访问等功能。 "jmx-1_2_1-bin"可能是JMX工具的特定版本,这里的"1_2_1"表示版本号。通常,这种命名格式表明这是一个二进制发行版,包含了...

    jmx-1_2_1-ri.jar

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

    jmx学习资料

    4. **插件式架构**: JMX可用于构建插件式系统,通过MBeans注册插件,实现灵活的扩展和替换。 **源码分析** 理解JMX的源码有助于更深入地掌握其工作原理。例如,你可以研究MBeanServer的实现,了解它如何注册和查找...

Global site tag (gtag.js) - Google Analytics