一、
JMX
简单介绍
Tomcat
从
5.0
版本开始引入
JMX
,力图使
JMX
成为
Tomcat
未来版本的管理工具和平台。首先,让我们来对
JMX
做一个简单了解。
JMX
是
Java Management Extension
的缩写,可译为
Java
管理工具扩展,扩展的意思就是
JMX
不包含在标准的
J2SE
中,我们必须要另外下载
JMX RI
的实现。不过,这种把
JMX
排除在
J2SE
之外的情况已经成为历史了,
J2SE5.0
和
J2SE6.0
都已经包含了
JMX
的标准实现。这说明,
JMX
已经成为
J2SE
不可分割的一部分,另外一方面,
JMX
已经成为
Java
平台上管理工具的事实标准,在业界广泛使用。例如,
JBOSS
就是以
JMX
为微内核,
Web
应用模块和其它功能模块都可热插拨到这个微内核,将
JMX
的管理功能发挥得淋漓尽致。从当前业界使用情况看,
JMX
中的
X(Extension
,扩展
)
应该去掉,改名为
Java Management Standard Platform (JMSP
,
Java
管理标准平台
)
更加合适。为了向下兼容,我们姑且还是称之为
JMX
吧。
JMX
要管理的对象是什么呢,是资源。什么是资源,资源是指企业中的的各种应用软件和平台,举例来说,一个公司内部可能有许多应用服务器、若干
Web
服务器、一台至多台的数据库服务器及文件服务器等等,那么,如果我们想监视数据库服务器的内存使用情况,或者我们想更改应用服务器上
JDBC
最大连接池的数目,但我们又不想重启数据库和应用服务器,这就是典型意义上的资源管理,即对我们的资源进行监视
(Monitoring
,查看
)
和管理
(Management
,更改
)
,这种监视和更改不妨碍当前资源的正常运行。对资源进行适当的监测和管理,可以让我们的
IT
资源尽可能的平稳运行,可以为我们的客户提供真正意思上的
24
×
7
服务。在资源耗尽或者在硬件出故障之前,我们就可以通过管理工具监测到,并通过管理工具进行热调整和插拔。独孤九剑,料敌机先,适当的资源管理就是我们料敌机先的工具,可以让我们立于
IT
服务的不败之地。在
Sun
公司提出
JMX(JSR174)
以前,人们通常都是使用
SNMP
对网络上的资源进行管理。
SNMP
的主要问题是入门门槛太高,不容易使用。所以
Sun
提出了
JSR174
倡议并且提供了一套
JMX
的参考实现。
从技术上说,
JMX
整体架构可分为三层,即资源植入层
(Instrumentation Level
,可能有更好的译法?
)
、代理层
(Agent Level)
和管理层
(Manager Level)
,简述如下:
资源植入层
(Instrumentation Level)
:该层包含
MBeans
及这些
MBeans
所管理的资源,
MBeans
是一个
Java
对象,它必须实现
JMX
规范中规定的接口。按照
JMX
规范,在
MBeans
对象的接口中,我们可以指定管理层可以访问资源的哪些属性,可以调用资源的哪些方法,并且,在资源的属性发生变化是,我们的
MBeans
可以发出消息,通知对这些属性变化感兴趣的其它对象。
JMX
规范定义了四种
MBeans
,它们分别是标准
MBeans(Standard MBeans)
、动态
MBeans(Dynamic MBeans)
、开放
MBeans(Open MBeans)
和模态
MBeans(Model MBeans)
。
代理层
(Agent Level)
:代理层的目的就是要把
MBeans
中实现的接口暴露给管理层,该层通常由
MBean Server
和
Agent Services
构成,
MBean Server
就是一个
MBeans
对象注册器,所有的资源
MBeans
都注册到这个
MBean Server
,对象管理器或者其它的管理层应用程序可以通过访问
MBean Server
,从而可以访问
MBean Server
中注册的
MBeans
,当然也就可以监视和管理和这些
MBeans
绑定的资源。
管理层
(Manager Level)
:又称之为分布式服务层
(Distributed Services)
,顾名思义,该层主要包含一些管理应用程序,这些程序可以访问和操作
JMX
代理层
(Agent Level)
。这些管理应用程序可以是一个
Web
应用,也可能是一个
Java SWT
应用程序。
JMX在Tomcat中的应用(一)
最新推荐文章于 2024-07-24 04:32:11 发布