分享

JMX IN ACTION---第一章

 埃德温会馆 2011-07-12

JMX IN ACTION---第一章

分类: JMX 63人阅读 评论(0) 收藏 举报

 

第一章 资源管理与 JMX

分布式应用、设备和服务设施以不同的组织方式出现在一个企业里。在你的公司,你可能通过公司内网或通过防火墙之外的网络服务得到数据。例如你可以通过一个共享的日历应用或一个财务应用来填写一个费用单。必须有人维护所有应用,不仅仅是这些应用,还包括支持这些应用的硬件,都需要维护。资源管理包含应用和支持应用的硬件。实际上,通过开发JMX 资源管理应用程序,应用和支持应用的硬件都可以被有效管理。本书将向你展示怎样使用JMX 管理和监控你的企业资源 包括硬件和软件。

无论你是否已经熟悉JMX 或是打算买这本书来弄清楚到底什么是JMX ,你都需要首先明白JMX 存在的理由。本章你将会学到JMX 基础知识,一些JMX 术语以及基础JMX 架构。我们的讨论会使用一个自行车商店的web 应用作为例子,在这个应用中,人们可以登入这个站点购买自行车和轮胎,以及进入和自行车有关的文章和内容的连接。

1.1 资源管理

资源管理是一个管理概念,它对企业中的应用和资源提供用于管理的计划和工具。对于典型的企业,资源管理是一个报告企业应用和硬件健康状况的一个工具。基于资源的健康状况,IT 工程师可以对系统中的失败和紧急事件作出反应。

改进的资源监视和管理系统可以使IT 工程师尽早的发现应用的问题,以在问题出现时尽快的提供解决方法。这样IT 工程师就由被动变为主动了。假如你意识到资源性能正在下降,那么你极有可能帮助避免了一场灾难性的失败。更进一步,你可以通过一个单独的管理控制台来远程调整资源和设备。

当前许多企业的管理环境缺乏对应用的快速响应。且许多应用监视和管理方案不仅成本很高而且很难实现。本节我将会比较典型的环境和我们自己的理想环境(它们之间的差距很可能让你感到吃惊)。然后,我们将向你展示,在典型的资源开发、努力和支持方面你可以做什么。

1.1.1 管理环境现状

当前的管理对象可以分为两类:网络和应用。大多数普通的网络(硬件)管理工具使用简单网络管理协议(SNMP ),而对于像web 站点一类的应用,多数企业开发者要么使用应用内置的管理工具或者自己开发工具。还记得前面提到的“资源管理包括应用和硬件两方面”吗?

硬件和网络管理

当前多数网络监控和管理系统使用SNMP 解决方案对硬件提供监控和管理能力。SNMP 是一个已经被广泛使用多年的监控标准。对例子中的自行车网店来说,你可以使用SNMP 监控运行这个应用的服务器的健康状况和活动以及后端应用。

受管设备的信息存储在管理信息库(Management Information Base MIB )中,MIB 是设备信息的一个层次表示。一个受管设备可以用位于MIB 树中的一个对象名或对象ID 来表示。一个可能的名字:

iso.identified-organization.dod.internet.private.enterprise.myenterprise.myvariables.myProduct 或者其他类似的。一个对象ID 使用一系列数字作为文本名(关于MIB 的更多信息,请参考SNMP 规范:http://www. )。

幸运的是许多硬件提供商会在他们的设备里提供MIB 的定义和SNMP 钩子。但是由于SNMP 开发的困难程度,很少有应用会使用SMNP 钩子。

SNMP 开发不是一件容易的事,大多数开发者并没有受到这方面很好的培训。很不走运,SNMP 不能很容易的对你的自行车店提供监控和管理。对于Java 日常开发者来说,开发SNMP 不是一件好差事。

应用管理

软件公司在开发应用时,通常不会考虑它的运行环境和配置,直到部署时,才焦头烂额的去考虑怎样维护系统,怎样处理紧急事件。一些公司在他们自己的产品中内置管理工具或管理控制台,对大多公司来说,应用管理来自于他们应用运行的平台, 一般是Web 或应用服务器。

当开发自行车商店的时候,你不仅要考虑此应用的健康状况,还需要考虑应用服务器、web 服务器以及数据库等其他软件的状况。如果没有一个标准、一致的管理平台,就不得不对暴露应用属性、健康状况和统计编写特定的代码。实际上,如果你换一个不同的监控方案,你不得不重新编写代码。

当前典型的管理环境,IT 工程师总是被动在维护应用。硬件和应用管理方案常常在部署阶段才被想起。当然,开发一个通用、可复用的管理和监控系统本身就是一件困难的事事情。

1.1.2 理想的管理环境

理想的管理环境应该具有主动解决问题的能力。管理系统应该可以持续的监控设备和应用的健康状况。如果一个设备宕机了,管理系统可以发现一个替代设备,并将请求重新路由到替代设备上,然后通知事故管理员。例如如果自行车网站宕掉了或者超负荷运行了,那么管理系统应该分发一些服务到另一个服务提供者,并通知管理员,甚至可以启动另一个web 服务器以分担原始服务器的负担。

理想的管理系统不仅仅需要时刻关注应用的健康,还需要知道应用内部的一些情况。例如,它可以快速的生成比较自行车商店成功和失败交易的报告。在系统管理层次,系统中当前的可执行线程数应该在执行期是可以改变的。管理系统可以基于它收集的应用和设备数据作出决定并采取措施。

不幸的是,理想的管理环境需要耗费很多经历和资源去实现,开发管理工具,你需要为你的应用和网络资源定制接口,并且可能需要很多其他的资源和配置来能保证在性能和可用性上有最大的灵活性。因此,你应该建立一个比当前系统更好并且易于构建和维护的系统,而不是去建立一个理想的管理系统。

1.1.3 真实的管理环境

一个可行的方案也许是当前的管理环境和理想的管理环境的一个折中方案。通过收集和综合网络应用和设备的信息,从而得到一个更好的解决方法,然后自动的去管理或者由系统管理员来实施。让我们还是以自行车商店为例来说明问题,它正思考着建立一个管理系统呢。

一个拟定的管理方案

设想你正在运行着我们前面提到那个自行车在线商店,顾客可以在他上面买自行车和轮胎。为了保证顾客的交易不被打断,你安装了另一个服务器以备第一个服务器突然宕机了。在整个环境中,web 服务器、应用服务器、数据库、网络设备共同提供了你所需的服务。下面的列出了在这个环境中需要监控的和管理的需求。

§         监控平台运行状况 你需要了解 web 和应用那个服务器以及支持他们的硬件的健康状 况。网络硬件向外暴露SNMP 接口,通过这些接口可以报告它的健康状况和任何发生的错误。同样的,web 服务器也向外报告错误,并且允许你查询它的运行状况。数据库也是如此,以便于查询它的性能和运行状况以及可能出现的错误。

§         在应用级别配置资源 你可能想直接连接自行车网站来进行配置和管理。当你开发这个应用时,你已经预先在它里边内置了管理程序以满足你需要的各种信息。你可以连到这个应用的服务器,修改一页可以显示的条目数,或者查看数据库状况是不是当前数据库的负担很重,以决定是否减少连接池中活动的连接数;你也可以减少线程池中的活动线程数以减低从外边来的并发请求。通过进一步的调整,使各种资源得到合理的应用。

§         收集应用统计数据 随着时间推移,为了进一步配置你的自行车网点应用,你可能还想收集各种重要的事务统计数据、查询数据等等。例如你想比较各个分类的访问量和实际的成交量,以及恶意攻击系统的数量。实际上,你完全可以把这些信息也放到管理系统中去。

§         调试选项 不要轻视用于分析的信息的数量。幸运的是,你已经提前意识到你将会在调试时候,需要要打开日志。通过管理API ,就可以允许自己在修改配置后不需要重新启动应用,就可以打开debug 选项,并将日志重定向至控制台以供debug

§         监视服务器性能 你的Web 应用需要监视运行状况和负载状况。如果在第一个server 上负载过多,你可能就需要就将一部分负载转移到备份server 上。为了避免失败的情况发生,你还需要通过mail 通知和打印件注意致命事件的发生。

关于这个方案

本节描述的这个监视和管理框架,基本覆盖了当前应用管理的重要方面。但是,实现这样一个框架确实昂贵和困难的,最终,管理员不得不面对不同的服务和硬件的不同的管理控制台和接口。

1.2 Java 解决方案 : JMX

前面几节,我们描述了一个涵盖企业应用所需的监控和管理框架,然而,必须指出的是,构建那样一个管理框架是很困难的,并且将会给管理员许多不同类型的管理工具去管理系统。本书中你将会看到,使用JMS 构建一个管理环境,将会更简单、更具有伸缩性,且开发周期很短。JMXJava 新加入的一个框架,它提供了一个标准的管理方案,包括我们前几节所描述的那些功能,JMX 允许你将所有的资源(硬件和软件)打包成java 对象,然后将他们暴露在分布式环境中,并且JMX 提供了一个机制,可以很简单的将既存的管理协议,如SNMP ,映射到JMX 自己的管理结构中。

让我们看看前几节描述的管理方案怎么使用JMX 来实现:

§         平台运行状况 一如前面提到的,通过JMX 你将非Java 资源和硬件接口包装成Java 对象,然后将他们置入JMX 管理环境。通过Java 包装,你可以和WEB 应用服务器交互,和硬件通信以驱动系统。

§         配置资源和收集统计信息 使用JMX ,你可以直接暴露应用和服务的API ,此外你还可以动态的选择暴露API 的一部分。随后通过JMX 管理工具,你可以在任何时间invoke 或查询这些API 。事实上,如果你知道你将会使用JMX ,你可以在你的应用中构建JMX 组件,然后将它们暴露在JMX 管理环境中。即使你的应用已经开发完毕,你仍然可以快速使用JMX 使你的应用变得可管理和可监控。

§         调试选项 调试选项像其他资源和属性一样是可配置的,一旦通过JMX 接口被暴露出来,就可以触发他们。

§         应用性能 使用JMX, 你可以很容易的监控系统中的关键事件。当一个事件发生时,JMX 可以将这个事件通知给提前定义的监听器处理。通过配置监听器,可以将事件发送到页面或一个邮件信息等等,处理是完全可定制的。

1.2.1 使用 JMX 的好处

    使用基于Java 解决方案的JMX 有很多好处,对于一个Java 程序员来说,一些好处是显而易见的。例如,Java 是便携式的语言(write once run anywhere ),因此你可以只关注你的应用本身而不用考虑平台相关性的问题。使用JMX 还有以下几个更具诱惑力的优点。

使用简单

相比较于SNMP 这些技术,JMX 具有显著的优点,具有Java 编程经验的程序员可以很快的掌握JMX 的概念,从而大大提高生产力。而要掌握SNMP ,不仅需要开发者熟悉某种开发语言,并且还需要开发者熟练掌握SNMP 协议,而SNMP 本身就是很难搞明白的。SNMP 的学习、解码、编译是一个相对比较漫长的过程。

再者,使用JMX 管理应用是简单和直接的(特别是你的应用是用Java 开发的)。开发者秩序很少的几行代码就可以使用应用具有被管理的特性。

兼容既存技术

      使用JMX 构建管理系统时,你不需要放弃系统中已经存在的管理结构,既存的管理工具可以接入JMX 技术中。正如前面提到的那样,JMX 提供了和其他协议(SNMPHTTP 等)通讯的能力,并且可以和其他任何的transport (如Java RMI )互连。如果既存的企业设备和应用没有内置管理工具,你仍然可以使用JMX ,通过构建一个JMX 代理作为操作中心来管理这些设备。

组件化

   JMX 允许你以组件的形式构建管理系统。你可以选择暴露整个设备或应用,或暴露它们的一个子集。当你将应用发给客户时,那么应用中包含的管理组件将可以直接的插入客户的管理套件中。

警告 , 事件 和统计

    通过JMX ,你可以让应用将它的当前的健康运行状态以及有用的统计信息报告出来。使用JMX ,你可以从Web 服务器或数据库等资源收集信息。

JMX 提供了一个通知(notification )机制,它充分发挥了Java 作为面向对象语言的优点。通知机制提供了充足的能力像分发基本数据那样分发Java 对象。管理系统可以发送一个既包含数据又包含操作的通知,对熟悉面向对象编程的程序员来说,这是一个很给力的概念,而我们前面讨论的那些管理和监控系统并没有这个能力。

使用JMX ,可以发布数据(警告和系统事件),也可以对感兴趣的数据发送一种机制。比如你可以发出一个处理器负载状态的通知,这个信息本身可能对管理系统不是很有用,但是如果发送一个对象,它不仅包含这些数据,而且伴随一个机制来提供负载重要度的应用视图。例如通知可以有一个方法isLoadCritical() ,它将返回临界负载的应用概念,那么管理系统就不仅可以基于负载作出决定,并且可以知道应用是否处在负载过度的状况。

快速监控方案

    你可能经历过这样的开发过程,在它里面,很多开发团队不得不通力合作以提供应用管理和监控的API 。如果使用JMX ,那么每个团队只需要为他们自己的应用开发的MBean 负责就可以了。

当应用部署的时候,只是简单将MBean 部署进JMX 代理。所有的MBean 在逻辑上来看是集中管理的,但是其实他们部署在不同的主机上。通过一个单独的管理工具就可以管理和配置所有的应用。相比较与其他的管理技术,使用JMX 来提供你的管理方案,可以使开发更容易、具有更强大的管理能力,并且可以从java 本身作为一种面向对象的语言和平台无关性上受益。

1.2.2 JMX 基本术语

    下列的术语是本书讨论的整个JMX 的基础。在这儿定义它们,仅仅是因为下一节我们会接触到它们。以后的章节会涵盖这些内容,在哪里,你将对他们有一个更深刻的理解。把它们列在下面仅仅是为了帮助理解下一节的JMX 架构。

 

可管理资源

    一个可管理资源是一个可以使用Java 进入或可以被Java 包装的应用、设备或存在的实体。它通过JMX 为管理暴露接口。应用可以向JMX 环境暴露组件、API 或其他的资源以备管理。可管理资源甚至可以是像打印机那样的网络设备。可管理资源是一个通过JMX MBean 管理的实体。

MBean

    MBean (管理构建)是一个Java 类,它符合JMX 规范中定义的命名规则,并继承一些标准的JMX 指令。MBean 实例就是Java 对象,它为可管理资源暴露管理和侵入接口。MBean 的管理接口由MBean 暴露给管理系统的属性和操作组成。

管理系统侵入MBean 以访问MBean 的属性并调用MBean 的操作。本书涉及三种类型的MBean :标准MBeanStandard MBean )、动态MBeanDynamic MBean )和模型MBeanModel MBean )。每一种MBean 在特定的场合都有自己的优势。MBean 驻留在另一个JMX 组件——MBean Server 中。

MBean server

    MBean server 是一个Java 类,它管理一组MBeanMBean serverJMX 管理环境的中枢,它在查询MBean 中扮演注册表的角色。MBean server 向外暴露所有已经在它上注册的MBean 的接口,但是不会暴露这些MBean 对象的应用。此外,MBean server 向用户提供一致的接口,而无论侵入的MBean 是那种类型,它平等的对待所有的MBeanMBean server 同时提供查询MBean 的方法和注册通知事件的方法。

JMX 代理( JMX agent

    JMX 代理是一个Java 进程,它提供一组用于管理MBean 的服务,它是一个MBean Server 容器。JMX 提供的服务包括:创建MBean 关系服务、动态加载类服务、简单监控服务和时间服务。

JMX 代理拥有一组协议适配器和连接器,通过它们,远端的不同的客户端就可以使用JMX 代理。协议适配器和连接器是Java 类,通常是MBean ,可以在内部映射一个外部协议(如HTTP 或者SNMP ),或者将代理暴露给远程的连接(像RMIJNDI ),这些意味着可以通过不同的管理协议和工具来使用JMX 代理。

协议适配器和连接器( Protocol adapters and connectors

协议适配器和连接器驻留在JMX 代理中,它们将代理暴露给管理应用和协议。例如SNMP 可以使用SNMP 适配器将自己映射到JMX 代理。另外,JMX 代理还可以有一个RMI 连接器,以备使用RMI 客户端进行管理。协议适配器由代理端的一个单独对象组成,而连接器则由代理端和客户端的对象一同组成。

一个代理可以有任意数量的适配器和连接器,从而可以使用新工具或已存在的协议和应用来连接代理。这样不仅仅代理具有可扩展性,而且有了一种跨网络的分布式代理机制。

管理应用( Management application

    管理应用是任何用于连接到JMX 代理接口的用户程序。JMX 代理可以和那些特意设计以使用JMX 技术的应用以及设计时没有此方面考虑的应用一起工作。JMX 兼容的管理应用可以从JMX 高级特性中得到好处。通过对代理定制适配器和连接器就可以和一个既存的(非JMX )管理系统交互。例如SNMP 管理系统可以通过创建一个SNMP 适配器,就可以和JMX 交互了。本书的以后章节,我们会涉及到RMIJNDITCP 的连接器和适配器。

通知 Notification

    通知是Java 对象,由MBeanMBeanServer 发送,包装了时间、通知和一般的信息。其他的MBeanJava 对象可以注册一个监听器以接受通知。实际上,正如你后面在第6 章看到的那样,JMX 通知和Java 事件模型是类似的。

指令( Instrumentation

指令是通过MBean 暴露的可管理资源的一个处理过程。指令的开发可以伴随应用的开发,或者开发者可以使用正在使用的系统的API 创建MBean 。随后你会发现,通过选择合适的MBean 类型,可以很容易的只暴露应用和资源的一部分。

1.3 JMX 架构

    J MX 架构是基于组件的,以构建灵活和可用的管理系统,这是通过为代理提供一个机制(MBean )以让不同的协议和不同的机制可是到达。本节通过将JMX 结构分为三个主要层:设备层(instrumentation )、代理层(agent )、分布层(distributed ),通过使用一个简单的例子讨论每一层。表1.1 列出了各层和其简单介绍:

 

1.1 JMX 三层架构

描述

分布层

Distributed layer

包含使管理系统和 JMX 代理通信的组件

代理层

Agent layer

包括代理和 MBean 服务器

指令层

Instrumentation layer

包括代表可管理资源的 MBean

 

每层都包括了一些我们已近讨论过的组件,但是你需要知道他们是怎么相互协作的。

1.3.1 例子:管理自行车商店服务器

    为了更好的理解每一层以及把它们联系起来,我们会看一个简单的用例。假设自行车商店有一个服务器端的应用,由它来管理库存和供货商。这个应用会定期的跟踪销售、库存、订单,通过配置,可以使用不同的订单的格式、日志级别、调度基准等。因为应用对于业务是至关重要的,它需要在不宕机的情况下进行不同的配置。

就像很多类似情况一样,你可能希望有一个控制台,通过它你可以连接到应用来改变日志级别、校验流程或者存储位置。然而,一个业务可能有很多这样的应用,每一个都有自己的配置和管理工具,这种情况下,你不得不针对每一个应用,用它们自己的工具进行配置。作为整体管理这样一个系统是一件很郁闷的事情,就如图1.1 所示的那样。

 

Figure 1.1 一个有许多应用的环境,每一个都有自己的一套配置和管理工具

 

相反的,让我们从JMX 的视角来考虑这种场景。JMX 怎样使这哦异构管理系统更好的工作?首先使用MBean 对每个应用的管理接口建模,接着在JMX 代理中暴露这样MBeanJMX 代理可以使用任何既存的协议,然后就可以通过一个统一的入口来控制应用。从用户的角度来看,是一个单独的管理应用,而不是一堆截然不同的管理组件。这种方式对应用套件的管理提供了一个一致并且健壮的解决方案。图1.2 说明了这个新的环境。

_

 

1.2 一个包含很多需要管理的应用,每一个都被自己的 MBean 表示。虚线框划分了 JMX 的三层架构

 

然我们看一个典型的数据存储应用的配置例子,假如用户需要改变应用的日志级别,需要以下步骤:

1.1              用户打开他喜欢的管理工具并连接到JMX 代理。

2.1              然后找到表示这个应用的那个MBean ,修改合适的日志级别。

3.1              然后MBean 会自动和应用交互以配置它的日志级别。

以下的几节通过讨论以上每步中发生了那些事来进一部理解JMX 的各层。第一层是分布层。

1.3.2 分布层

    分布层是JMX 架构的最外一层,分布层负责使JMX 代理对外部世界可用。有两种类型的分布式交互。第一种类型由适配器来实现,它通过HTTPSNMP 一类的协议提供了MBean 的可见性。第二种类型是连接器,它将代理的API 暴露给其他的分布式技术,如Java RMI 。事实上如下图3.1 所示,一个代理可以同时允许不同的技术在一起工作。适配器和连接器在JMX 环境中提供的是相同的作用,在写本书的时候,它们被分为两种类型,但是计划在下一个JMX 发行版时将它们统一称为适配器。

_

 

1.3 JMX 代理和适配器、连接器

 

前面的例子中的第一步:用户使用一个他们喜欢的工具连到JMX 代理,通过的就是这一层。JMX 代理包含可以管理自行车商店应用的MBean ,在分布式层,它包含了可使客户端通过浏览器、Java RMISNMP 连到代理的组件(适配器和连接器)。如上图所示,用户的工具可以是JMX 兼容的工具或使用其他技术或协议的工具。

一旦连接到了代理,用户就可以使用管理工具和代理中的MBean 进行交互了。接下来,就进入代理层了。

1.3.3 代理层

    代理层主要的组件是MBean 服务器,MBean 服务器供MBean 注册使用,它是JMX 代理的核心。同时代理层还提供四种可以更容易的管理MBean 的代理服务:时间服务、监视服务、动态MBean 装载服务和关系服务。

代理层提供侵入可管理资源的方式。JMX 代理可以运行在资源所在主机的JVM 上,也可以运行在远程的机器上。代理层不需要知道它所暴露的资源或那些使用MBean 的管理应用,它只提供一个服务,用来处理MBean ,以及通过连接器或适配器暴露的一系列的协议来操纵MBean

_

 

1.4 MBean 服务器和代理服务

第二步,用户找到了管理自行车商店应用配置的MBean ,之后,用户调用MBean 暴露的用以配置日志级别的操作,在这刻涉及到MBean 了,就进入了指令层。

1.3.4 指令层

    指令层是最接近管理资源的一层,它由代理中注册的MBean 构成。MBean 使得资源可以通过代理来被管理。每一个Mbean 暴露底层管理资源的一部分配置或是一个功能,它以Java 对象的方式提供了对资源的管理。如果资源本身不是使用Java 的,MBean 就扮演了从代理到资源之间的一个转换器。

例如,如果有一个旧的应用,它通过查询数据表来进行管理,那么你可以构建一个MBean ,它通过JDBC 去数据读取数据或改变数据。应用不需要担心底层技术的构建,因为MBean 对他们进行了抽象。

MBean 是一个轻量级的对象,它知道怎么去使用、请求和操作它对应的资源,从而对代理和用户提供了侵入资源的能力。图1.5 展示了MBean 和资源的直接交互。

_ _

1.5 MBean 和它对应的资源的交互

 

如果你愿意,你可以构建一个MBean ,来管理一箩筐的应用,就像一个管理单元那样,这样就可以通过一次调用设置所有应用的日志级别了。例如你想改变数据库和应用的日志级别为调试模式,可以使用Mbean 来调用一个单独的应用去设置调试级别。即使和不同应用通信的底层技术是不同的,Mbean 也可以从管理系统抽象出,不同的技术将作为一个聚集单元出现。

1.3.5 通知

    除了上面说的三层外,JMX 还提供了一个中通知模型,非常类似于Java 的事件模型。通知为一个完整管理系统提供了一个可选组件。三层架构允许代理配置和控制资源,但是管理系统的一大部分还依赖于对资源中发生的事件的交互。通过使用通知,JMX 代理和Mbean 可以向管理应用或其他的MBean 发送时间和报告信息。用户可以使用通过来接受到重要的直接和感兴趣的请求。

 

例如自行车商店应用可以具备在交易处在一个错误的状态时收到通知的能力。对于错误的交易,应用可以将一个事件push 进它MBeanMbean 可以发送通知给感兴趣的客户端。

1.4 使用 JMX 作为一个应用架构

JMX 代理层用于构建应用是一个理想的工具,Mbean 服务器可以作为应用组件的骨架,应用如数据层、日子组件或者事务管理者之类的。通过将应用组件定义为MBean ,可以将应用的其他部分从组件的实现细节隔离开来,图1.6 说明了这个概念。

 

_ _

 

1.6 使用 MBean 构建应用

 

通过这种方式使用JMX ,以及通过定义对组件的MBean 定义接口,就可以很容易的创建应用来替换不同的组件实现。可以很容易的通过注册一个新的MBean 来添加一个新组件。

如果认为这种类型的架构看起来不大可能,可以考虑JMX 已经在实际中被这样使用了。例如,JBoss 应用服务器就是以组件的方式构建的,使用MBean 服务器作为它的内核,通过这种方式,JBoss 开发者很容易的添加、改变和移除应用服务和组件。

1.5 JMX 的使用

    如果你担心使用一个新的管理框架是不是会被接受,本节可以使你消除这中担心。JMX 虽然是一个新技术,但是它已近被广泛的接受,用于配置应用服务器和构建管理工具。表1.2 列出了一些使用JMX 产品。

 

1.2 使用 JMX 的产品

Product

Company

Description

WebLogic Application Server

BEA Systems

用于监视运行在服务器中的 J2EE 服务

JBoss Application Server

JBoss

用于应用服务器架构和监视运行在服务器中的服务

Bluestone Application Server

Hewlett-Packard

用于配置应用服务器

OpenView

Hewlett-Packard

监视组件

Adventnet Manager

Adventnet

基于 JMX 的监视解决方案

JDMK (Java Dynamic Management Kit)

Sun Microsystems

构建 JMX 产品的开发组件集

Tivoli JMX

IBM

IBM JMX 实现

 

本表只列出了开始使用JMX 的产品的一部分,随着J2EE 平台的越来越广泛的接受,JMX 将会成为管理解决方案的标准。

1.6 Developing with JMX

    Java 管理扩展(JMXAPI 现在是J2EE 平台的一个扩展。但是根据JSR000174JMX 会成为J2SE 下一个版本的一部分。选择使用JMX 开发应用,可以在Java 社区得到足够的支持。不仅Sun 提供了一个JMX 的实现,IBM 也提供了一个实现。

需要应用服务器的开发商也在他们的产品内建对JMX 的直接支持。使用JBossWebLogic 一类的应用服务器,可以在你的应用运行时得到JMX 的支持。即使你的应用服务器不支持JMX ,你也可以直接在你的应用中包含一个JMX 代理。在本书中,你将会看到这方面的例子。

1.7 总结

    到现在为止,你应该对资源管理的概念有一个基本的了解了,我们比较理想的资源管理和当前的资源管理,并且推荐了一个组合的可以在现实中实现管理方式。

JMX 提供了必须的服务以构建推荐的管理系统,它通过三层:指令层、代理层和分布层来提供提供这些服务。三层架构使得JMX 可以为任何管理环境提供一个可扩展的、灵活的管理系统

第二章通过一个典型的Hello World 例子开始JMX 学习之旅,你会创建一个简单的JMX 代理和第一个MBean

 

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多