Java分布式应用学习笔记09JMX-MBean的介绍

Java分布式应用学习笔记09JMX-MBean的介绍
Java分布式应用学习笔记09JMX-MBean的介绍

Java分布式应用学习笔记09JMX-MBean的介绍

刘岩

Email:suhuanzheng7784877@https://www.360docs.net/doc/1019224688.html,

Blog:https://www.360docs.net/doc/1019224688.html,

1.MBean介绍

从上一篇Blog的内容可以看到,我们大多数代码工作量都是自定义的一个JavaBean,这个JavaBean有属性、访问器(get)、写操作(set),之后还可以定义一些非常规方法,比如执行核心管理操作的方法,甚至还可以深度调用full gc进行全面的资源回收。

也就是说这个JavaBean并不像它的名字那么简单,它负责了一些监管任务等等。使用者灵活地使用JMX客户端工具,比如咱们上一章介绍的JConsole。借助Sprng框架,给开发者的感觉就是仅仅开发这种JavaBean就可以了。这种看似简单的JavaBean叫做MBean(管理构建),比较权威的定义是:在JMX规范中,管理构件定义如下:它是一个能代表管理资源的Java对象,遵从一定的设计模式,还需实现该规范定义的特定的接口。该定义了保证了所有的管理构件以一种标准的方式来表示被管理资源。

资源是什么?程序、日志、持久化数据、硬件、内存、网络吞吐量等等皆可看作是系统资源。

管理资源暴露出一些信息,让外部能够进行远程查看和远程监管,这就是管理构建要做的事情。当然了管理构建MBean还得支持类似于JMS那种订阅/通知的机制。

2.MBean的类型

标准管理构建,学名——Standard MBean,本身暴露MBean需要符合某些命名规范,比如类结尾以MBean等等,但是使用了框架,这些限制就被透明化了。换句话说开发者只需要定制一个PO J O即可,之后暴露即可。这也是上一章节的那些JMX——MBean。

咱们用一个网上的实例吧,个人觉得网上那个实例比较清晰了

之后对其进行监管

之后就是暴露MBean服务

使用场景,就是在运行期间,你不知道你系统要调用哪个类、哪个方法,但是又想在运行期间顺利的调用到该方法,那怎么办?动态MBean可以解决这个问题。

实现j ava x.management.D ynamicMBean 接口和它定义的方法,即可,该接口定义了以下6个方法:

getMBean I nfo

get A ttri b ute

set A ttri b ute

get A ttri b utes

set A ttri b utes

invo k e

从方法名字上可以知晓和Java的反射机制差不多啊,都是获得对象的一些元数据,之后进行动态invo k e。这里插一句,既然可以动态invo k e调用动态MBean的方法,是不是就意味着可以像AOP面向切面编程一样对动态MBean进行横向侵入呢?答案是肯定的。由于D ynamicMBean的接口是不变的,因此可以屏蔽实现细节。由于这种在运行期获取管理接口的特性,动态管理构件提供了更大的灵活性。

开放式管理构建,学名——O pen MBean,开放管理构件是一种专门化的动态管理构件,其中所有的与该管理构件相关的参数、返回类型和属性都围绕一组预定义的数据类型(String、I nteger、F loat 等)来建立,并且通过一组特定的接口来进行自我描述。JMX 代理通过获得一个O penMBean I nfo对象来获取开放管理构件的管理接口,O penMBean I nfo是M b ean I nfo的子类。很可惜,这个没实例,也不经常使用。希望经常使用这个的童鞋将这块补上。

模型MBean,学名——ModelMBean,模型管理构件也是一种专门化的动态管理构件。普通的动态管理构建通常缺乏一些管理系统所需要的支持:比如持久化MBean的状态、日志记录、缓存等等。如果让用户去实现这些功能确实比较繁琐。为了减轻用户的负担,JMX 提供商都会提供不同的ModelBean实现。其中有一个接口是Java规范中规定所有厂商必须实现的:j ava x.management.modelm b ean.R e q uiredModelBean。通过配置描述信息,我

们可以定制这个ModelBean,指定哪些MBean状态需要记入日志、如何记录以及是否缓存

之后也是暴露如下

通常开发JMX都有以下几个步骤:

创建一个MBServer:mBeanServe

获得管理资源用的MBean:serverBean

给这个MBean一个Obj ect N ame:serverMBean N ame

将serverBean以serverMBean N ame注册到mBeanServer上去。

这篇总结大多数是查看的网络资料,学习交流而已,比较理论化,以下是查询的几篇资料链接。JMX工作原理图如下

参考资料:

http://www.i b https://www.360docs.net/doc/1019224688.html,/developer w or k s/cn/j ava/j-lo-j se63/inde x.html

https://www.360docs.net/doc/1019224688.html, b https://www.360docs.net/doc/1019224688.html,/aura w ing/articles/1887060.html

http://b ai k e.b https://www.360docs.net/doc/1019224688.html,/vie w/866268.htm

相关主题
相关文档
最新文档