分享

JMX简介

 开心豆豆2010 2011-07-13
  JMX为管理和监测资源的应用程序定义了一个通过架构、设计模式、API和服务。JMX可以管理和监测的资源包括应用程序、设备、服务和Java虚拟机。
    JMX是一个规范,由JSR3和JSR160共同定义。
    JMX典型的应用包括但不限于以下三种:
  1. 管理应用程序的配置
  2. 统计并展现应用程序的行为
  3. 当资源的状态发生变化时发出通知
    第一类应用是比较好理解的。在一个系统中,通常会有一些配置信息,例如服务器的IP地址和端口号。这些信息可能在系统运行的过程中发生变化。如果我们将这 些信息硬编码,那么修改信息时需要重新编译和部署;如果我们用配置文件的形式来保存和编辑这些信息,那么修改信息时需要重新启动系统;如果我们让系统在运 行时定期检查配置文件是否发生变化,虽然可以不必重新启动系统,但是为系统增加了额外的复杂性。JMX为我们提供了更好的解决方案。我们可以把配置信息封 装在一个称为MBean的对象中,JMX提供了现成的用户接口(例如Web页面),使得我们可以在系统运行时方便地修改配置信息。
    第二类应用有个现成的例子,就是JDK工具套装中的jconsole。JConsole是一个JMX兼容的图形界面工具,它能够连接到本地或远程的 JVM,检测JVM的运行情况,例如内存使用情况、线程的数量、已装入类的数目以及VM的其它数据。JConsole将这些JVM的数据以图形化的方式展 现给用户。
   
    第三类应用是JMX的重要应用。我还没有遇到一个合适的例子。如果以后见到,再补充进来。   
    JMX的核心API是JavaSE的一部分。因此,开发基本的JMX应用程序,是不需要额外的包的。如果需要使用到一些高级的功能,如协议适配器,则可能需要引入额外的包。

    下面介绍一些JMX的基本架构。
    JMX架构分为三层,自底向上依次是设备层、代理层和分布式服务层。
    设备层包含所有被管理和监测的资源。JMX可管理的资源可以是任何软硬件,包括应用程序、服务组件、设备等。我们把这些资源称为托管资源。托管资源被包装 成一个Java对象——MBean,以便该资源能够被JMX兼容的应用程序所管理。MBean是JMX架构中的基本组件,它代表了托管资源。MBean共 有四种类型,分别是标准MBean、动态MBean、开放MBean和模型MBean。这四种MBean的差异会在以后的文章中介绍到。
    代理层的主要角色是JMX代理。JMX代理被实现为MBeanServer对象。所有的MBean对象都被注册到MBeanServer上,以便被查询和控制。
    分布式服务层定义了JMX应用程序所需的接口。JMX应用程序通过该接口,与MBean进行交互。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多