`
gaojingsong
  • 浏览: 1182270 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

JMX 介绍

阅读更多

JMX 介绍

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。

JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等

优点可以非常容易的使应用程序具有被管理

伸缩性的架构每个JMX Agent服务可以很容易的放入到Agent中,每个JMX的实现都提供几个核心的Agent服务,你也可以自己编写服务,服务可以很容易的部署,取消部署。

主要提供接口,允许有不同的实现

 

 

JMX分层

JMX体系结构分为以下四个层次:

设备层

设备层(Instrumentation Level):主要定义了信息模型。在JMX中,各种管理对象以管理构件的形式存在,需要管理时,向MBean服务器进行注册。该层还定义了通知机制以及一些辅助元数据类。

代理层

代理层(Agent Level):主要定义了各种服务以及通信模型。该层的核心是一个MBean服务器,所有的管理构件都需要向它注册,才能被管理。注册在MBean服务器上管理构件并不直接和远程应用程序进行通信,它们通过协议适配器和连接器进行通信。而协议适配器和连接器也以管理构件的形式向MBean服务器注册才能提供相应的服务。

分布服务层

分布服务层(Distributed Service Level):主要定义了能对代理层进行操作的管理接口和构件,这样管理者就可以操作代理。然而,当前的JMX规范并没有给出这一层的具体规范。

附加管理协议API

定义的API主要用来支持当前已经存在的网络管理协议,如SNMP、TMN、CIM/WBEM等。

 

 

 

JMX定义了四种管理构件

标准、动态、开放和模型管理构件。每一种管理构件可以根据不同的环境需要进行制定。

1.标准管理构件

标准管理构件的设计和实现是最简单的,它们的管理接口通过方法名来描述。标准管理构件的实现依靠一组命名规则,称之为设计模式。这些命名规则定义了属性和操作。检查标准管理构件接口和应用设计模式的过程被称为内省(Introspection)

。JMX代理通过内省来查看每一个注册在MBean 服务器上的管理构件的方法和超类,看它是否遵从一定设计模式,决定它是否代表了一个管理构件,并辨认出它的属性和操作。

2.动态管理构件

动态管理构件提供了更大的灵活性,它可以在运行期暴露自己的管理接口。它的实现是通过实现一个特定的接口DynamicMBean(如下图)。

JMX代理通过getMBeanInfo方法来获取该动态管理构件暴露的管理接口,该方法返回的对象是MbeanInfo类的实例,包含了属性和操作的签名。由于该方法的调用是发生在动态管理构件向MBean服务器注册以后,因此管理接口是在运行期获取的。不同于标准管理构件,JMX代理不需要通过内省机制来确定动态管理构件的管理接口。由于DynamicMBean的接口是不变的,因此可以屏蔽实现细节。由于这种在运行期获取管理接口的特性,动态管理构件提供了更大的灵活性。

3.开放管理构件

开放管理构件是一种专门化的动态管理构件,其中所有的与该管理构件相关的参数、返回类型和属性都围绕一组预定义的数据类型(String、Integer、Float 等)来建立,并且通过一组特定的接口来进行自我描述。JMX代理通过获得一个OpenMBeanInfo对象来获取开放管理构件的管理接口,OpenMBeanInfo是MbeanInfo的子类。

4.模型管理构件

模型管理构件也是一种专门化的动态管理构件。它是预制的、通用的和动态的 MBean 类,已经包含了所有必要缺省行为的实现,并允许在运行时添加或覆盖需要定制的那些实现。JMX规范规定该类必须实现为javax.management.modelmbean.RequiredModelMBean,管理者要做的就是实例化该类,并配置该构件的默认行为并注册到JMX代理中,即可实现对资源的管理。JMX代理通过获得一个ModelMBeanInfo对象来获取管理接口。

 

 

 

模型管理构件具有以下新的特点

1)持久性

定义了持久机制,可以利用Java的序列化或JDBC来存储模型MBean的状态。

2)通知和日志功能

能记录每一个发出的通知,并能自动发出属性变化通知。

3)属性值缓存

具有缓存属性值的能力。

 

 

JMX通知模型依靠以下几个部分

1)Notification,一个通用的事件类型,该类标识事件的类型,可以被直接使用,也可以根据传递的事件的需要而被扩展。

2)NotificationListener接口,接受通知的对象需实现此接口。

3)NotificationFilter接口,作为通知过滤器的对象需实现此接口,为通知监听者提供了一个过滤通知的过滤器。

4)NotificationBroadcaster接口,通知发送者需实现此接口,该接口允许希望得到通知的监听者注册。

 

 

 

JMX规范定义了代理服务有

1)动态类装载--通过管理小程序服务可以获得并实例化新的类,还可以使位于网络上的类库本地化。

2)监视服务--监视管理构件的属性值变化,并将这些变化通知给所有的监听者。

3)时间服务--定时发送一个消息或作为一个调度器使用。

4)关系服务--定义并维持管理构件之间的相互关系。

 

1.动态类装载

动态类装载是通过m-let(management applet)服务来实现的,它可以从网络上的任何URL处下载并实例化管理构件,然后向MBean服务器注册。在一个M-let服务过程中,首先是下载一个m-let文本文件,该文件是XML格式的文件,文件的内容标识了管理构件的所有信息,比如构件名称、在MBean服务器中唯一标识该构件的对象名等。然后根据这个文件的内容,m-let服务完成剩余的任务。下图例示这一过程:

2.监视服务

通过使用监视服务,管理构件的属性值就会被定期监视,从而保证始终处于一个特定的范围。当监视的属性值的变化超出了预期定义的范围,一个特定的通告就会发出。JMX规范当前规定了三种监视器:

1)计数器监视器,监视计数器类型的属性值,通常为整型,且只能按一定规律递增。

2)度量监视器,监视度量类型的属性值,通常为实数,值能增能减。

3)字符串监视器,监视字符串类型的属性值。

每一个监视器都是作为一个标准管理构件存在的,需要提供服务时,可以由相应的管理构件或远程管理应用程序动态创建并配置注册使用。

 

3.时间服务

JMX时间服务可以在制定的时间和日期发出通告,也可以定期的周期性的发出通告,依赖于管理应用程序的配置。时间服务也是一个管理构件,它能帮助管理应用程序建立一个可配置的备忘录,从而实现智能管理服务。

4.关系服务

JMX规范定义了管理构件之间的关系模型。一个关系是用户定义的管理构件之间的N维联系。

关系模型定义如下一些术语:

1)角色:就是是一个关系中的一类成员身份,它含有一个角色值。

2)角色信息:描述一个关系中的一个角色。

3)关系类型:由角色信息组成,作为创建和维持关系的模板。

4)关系:管理构件之间的当前联系,且必须满足一个关系类型的要求。

5)角色值:在一个关系中当前能满足给定角色的管理构件的列表。

6)关系服务:是一个管理构件,能接触和维持所有关系类型和关系实例之间的一致性。

 

 

 

 

MBean服务器

Mbean服务器为代理层的核心,设备层的所有管理构件都在其注册,管理者只有通过它才能访问管理构件。

管理构件可以通过以下三种方法实例化和注册:

1)通过另一个管理构件

2)管理代理本身

3)远程应用程序

注册一个管理构件时,必须提供一个唯一的对象名。管理应用程序用这个对象名进行标识管理构件并对其操作。这些操作包括:

1)发现管理构件的管理接口

2)读写属性值

3)执行管理构件中定义的操作

4)获得管理构件发出的通告

5)基于对象名和属性值来查询管理构件

0
0
分享到:
评论

相关推荐

    jmx介绍和使用

    jmx的简单介绍和使用,包含一些简单的代码示例,看完基本能了解jmx并使用。

    JVM JMX java

    **JMX介绍** JMX为Java应用提供了管理和监控的框架,允许开发者创建、注册和管理MBeans(Managed Beans),这些对象代表了应用的组件或服务。MBeans可以是简单的数据结构,也可以包含操作和通知,使得开发者能够远程...

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

    《JMX技术介绍》一书显然是为了深入探讨这一技术而编写的,配套源代码则提供了实践示例,帮助读者更好地理解和应用JMX。 1. JMX架构: JMX架构由管理代理(MBeans)、服务提供者接口(MBean Server)和管理客户端...

    JMX小例子以及介绍

    Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、操作系统和网络设备。它提供了一种统一的方式来创建、配置、查询和管理Java应用中的资源。本篇文章将深入探讨JMX的核心概念...

    JMX实战 JMX开发

    书中不仅有对于基础知识的介绍,还有对于JMX开发中重大的体系架构问题的深入探讨,总结了大量JMX开发中的设计模式,并讨论了框架、安全性与性能等等。书中提供了几个典型的例子,兼顾各种开发平台,这些例子的代码...

    jmx技术介绍(ppt)

    JMX(Java Management Extensions)是一种Java平台上的管理框架,它提供了一种标准的方式来管理和监控应用程序、设备和服务。JMX的核心概念包括MBean(Management Bean)、MBean服务器和管理接口。 **概述** JMX是...

    书籍JMX-IN-ACTION

    书中首先介绍了JMX的基本概念,包括MBean(管理bean)、MBean服务器、代理和通知等核心元素,以及它们在JMX架构中的作用。MBean是JMX的核心,它代表了可以被管理的资源或服务,而MBean服务器则作为运行这些MBean的...

    TongWeb7的JMX监控.doc

    本文将详细介绍如何使用 JMX 监控 TongWeb7。 首先,要开启 JMX 监控,我们需要查看 TongWeb 的 `server.log` 文件,从中获取 JMX 的连接 URL。例如,在提供的日志中,我们可以看到一个示例 URL:“service:jmx:rmi...

    JMX与Spring 结合

    下面我们将详细介绍几个关键点: 1. **JMX与Spring 结合实例**:在Spring应用中,可以通过配置或者编程方式来注册MBeans(Managed Beans),这些MBeans代表了应用中的特定组件或服务。Spring 提供了`...

    JMX入门的好资料啊

    这篇博客文章(可以通过给定的链接访问)可能是介绍JMX基础知识的一个很好的起点。虽然具体的博客内容未在描述中给出,但我们可以根据JMX的一般知识来探讨其关键概念和用法。 首先,JMX的核心组成部分包括MBeans...

    JMX HelloWorld Download

    **描述解析:** 描述部分为空,但根据标题推测,这可能是一个简单的教程,通过“Hello World”这个经典的编程范例,介绍如何使用JMX来监控和管理Java应用程序。通常,"Hello World"程序会展示最基本的功能,以便初学...

    JMX1.4规范中文版

    在JMX的组织结构中,各个章节详细介绍了JMX的不同方面,包括设备层、代理层和远程API规范,涵盖了从MBean的设计、开发、监控、定时、安全到远程访问的各个方面,为理解和实现JMX提供了详细的指导。 需要特别注意的...

    jmxtools-1.2.1.jar+jmxri-1.2.1.jar.zip

    Java Management Extensions (JMX) 是Java平台上的一个标准技术...尽管描述中提到“介绍没用”,但了解JMX、JMS以及它们如何通过`jmxtools.jar` 和 `jmxri.jar` 实现是至关重要的,这对于理解和利用这些资源至关重要。

    网络管理之jmx开发实战

    本文详细介绍了如何使用JMX进行网络管理的实际操作过程,包括创建Mlet配置文件、创建MBeanServer、调用MBean的方法等。此外,还介绍了几种不同的JMX实现以及如何使用Timer MBean。这些知识对于理解JMX的工作原理及其...

    JMX以RMI方式连接的场景示例

    在本场景中,我们将介绍如何使用RMI(Remote Method Invocation)连接方式来实现JMX框架的各层级的连接。 MBean是JMX框架的基本组件,用于提供管理信息和功能。MBean可以是任何Java对象,只要它实现了相关的接口。...

    jmx 实现远程连接tomcat

    下面我们将详细介绍如何使用jmx实现远程连接tomcat。 一、配置环境 首先,我们需要确保Linux下配置好Java环境,即配置好tomcat和jdk,并且能启动tomcat。这是因为jmx需要依赖Java环境来运行。 二、配置tomcat 在...

    JBoss Admin Development Guide3.26

    1. **JMX介绍** - **JMX层级**:包括Instrumentation层、Agent层、Distributed Services层以及JMX组件概述。 - **JBoss JMX实现架构**:详细介绍了JBoss如何利用JMX来实现其微内核架构。 2. **JBoss类加载器架构*...

    JMX实战

    **概述**:本章节主要介绍了JMX(Java Management Extensions)在资源管理中的作用及其实现方式。JMX是一种标准的技术框架,用于管理和监控应用程序、设备和其他资源。 **详细解释**: - **JMX的基本概念**:JMX由...

    JMX入门教程

    本教程通过一个简单的“Hello World”示例介绍了JMX的基本用法。通过JMX,我们可以轻松地在Java应用程序中集成管理和监控的功能,这对于提高应用的可管理性和可维护性具有重要意义。希望本文能够帮助读者更好地理解...

Global site tag (gtag.js) - Google Analytics