jmx入门

来源:互联网 发布:圣斗士星矢模型 淘宝 编辑:程序博客网 时间:2024/05/16 10:19

 

JMX越来越多得出现在各种技术杂志、以及社区,如ibm developerworksbeadev2dev。不仅仅是SUN,许多厂商都宣布已经或是准备支持这一技术。IBMBEAHPMarcomedia(JRun)这些大的厂商,而且还有许多小的软件公司和开源项目也都加入了这一行列。为什么JMX那么受欢迎,JMX到底有那些优势只得人们去学习和理解,本文从JMX的基本架构、hellowold jmx以及springJMX的支持讲起,希望大家能通过本文对JMX有个基础的认识,并能通过本文为今后学习JMX打个基础

JMX中的术语:

  • MBean:是Managed Bean的简称。在JMXMBean代表一个被管理的资源实例,通过MBean暴露一系列方法和属性,外界可以获取被管理的资源的状态和操纵MBean的行为。事实上,MBean就是一个Java Object,同JavaBean模型一样,外界使用反射来获取Object的值和调用Object的方法,只是MBean提供了更加容易操作的反射的使用。Mbean 包括4种类型:标准MBean、动态MBean、开放MBean、模型MBean
  • MBeanServerMBeanServerMBean 的容器。MBeanServer管理这些MBean,并且通过代理外界对它们的访问。MBeanServer提供了一种注册机制,通过注册AdaptorConnector,以及MBeanMBeanServer,并且通过代理外界对它们的访问。外界可以通过名字来得到相应的MBean实例。
  • JMX AgentAgent只是一个Java进程,它包括这个MBeanServer和一系列附加的MbeanService。当然这些Service也是通过MBean的形式来发布。
  • Protocol Adapters and Connectors
    JMX Agent
    通过各种各样的AdapterConnector来与外界(JVM之外)进行通信。同样外界(JVM之外)也必须通过某个AdapterConnector来向JMX Agent发送管理或控制请求。Jdmk5.1中,sun提供很多AdaptorConnector的实现
        Adapter
    Connector的区别在于:Adapter是使用某种协议(HTTP或者SNMP)来与JMX Agent获得联系,Agent端会有一个对象(Adapter)来处理有关协议的细节。比如SNMP AdapterHTTP Adapter。而ConnectorAgent端和client端都必须有这样一个对象来处理相应的请求与应答。比如RMI Connector
    JMX Agent
    可以带有任意多个Adapter,因此可以使用多种不同的方式访问Agent

JMX基本构架:
JMX
分为三层,分别负责处理不同的事务。它们分别是:

  • Instrumentation 
      Instrumentation
    层主要包括了一系列的接口定义和描述如何开发MBean的规范。通常JMX所管理的资源有一个或多个MBean组成,因此这个资源可以是任何由Java语言开发的组件,或是一个JavaWrapper包装的其他语言开发的资源。
  • Agent 
      Agent
    用来管理相应的资源,并且为远端用户提供访问的接口。Agent层构建在Intrumentation层之上,并且使用管理Instrumentation层内部的组件。通常Agent由一个MBeanServer组成。另外Agent还提供一个或多个AdapterConnector以供外界的访问。
  • Distributed 
    Distributed
    层关心Agent如何被远端用户访问的细节。它定义了一系列用来访问Agent的接口和组件,包括AdapterConnector的描述。
  •   Jmx 三层之间的关系:

jmx架构

 

MBean

 

MBean Server

MBean

 

HTTP Adaptor

MBean

RMI Adaptor

SNMP Adaptor

Agent

level

Instrumentation

level

Connector

level

JMX

Manager

WEB

Browse

SNMP

Manager

Remote

Manager

 

                                   (图一)

本图片来自SUN JDMK的官方文档

sun

(图二)

用另外的一个图来解释这3层之间的关系

3

 

                               (图三)

1:储蓄用户、企业贷款用户都需要到银行注册开户

2:企业贷款需要通过其开户,然后从银行拿到钱

3:拿到的钱是大部分储蓄用户存入的

JMX的开发过程也是如此

1:创建一个JMXServer

2:创建Mbean

3:把创建的Mbean 和现成的Adaptor注册到JMXServer上来

4:启动JMXServer

5manager通过Adaptor访问ResourceMbean

 

原创粉丝点击