JMX 的理解

简介: Web应用系统总算开发了,接下来该如何让客户(Web应用系统的管理员)轻松管理我的一堆配置文件,或者如何实现动态修改系统运行属性,同时又让客户不需要过多的了解配置文件的内容就能够实现这些管理呢?这是许多刚刚结束Web应用系统前期开发的系统分析人员需要面临的问题。

Web应用系统总算开发了,接下来该如何让客户(Web应用系统的管理员)轻松管理我的一堆配置文件,或者如何实现动态修改系统运行属性,同时又让客户不需要过多的了解配置文件的内容就能够实现这些管理呢?这是许多刚刚结束Web应用系统前期开发的系统分析人员需要面临的问题。又或者说我想对早已完成Web应用系统进行有效的资源管理,希望再添加管理功能的同时,对原有的代码不需要做过多的修改,换句话说就是管理系统与被管理的应用系统做到很好的隔离。JMX的管理框架(图1)为你很好的解决了这些问题。


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

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

优点可以非常容易的使应用程序具有被管理伸缩性的架构每个JMX Agent服务可以很容易的放入到Agent中,每个JMX的实现都提供几个核心的Agent服务,你也可以自己编写服务,服务可以很容易的部署,取消部署。
主要提供接口,允许有不同的实现


先来了解一下JMX中的术语:

MBean:
是Managed Bean的简称。在JMX中MBean代表一个被管理的资源实例,通过MBean中暴露的方法和属性,外界可以获取被管理的资源的状态和操纵MBean的行为。事实上,MBean就是一个Java Object,同JavaBean模型一样,外界使用自醒和反射来获取Object的值和调用Object的方法,只是MBean更为复杂和高级一些。

MBeanServer:MBean生存在一个MBeanServer中。MBeanServer管理这些MBean,并且代理外界对它们的访问。并且MBeanServer提供了一种注册机制,是的外界可以通过名字来得到相应的MBean实例。

JMX Agent:Agent只是一个Java进程,它包括这个MBeanServer和一系列附加的MbeanService。当然这些Service也是通过MBean的形式来发布。


Protocol Adapters and Connectors:JMX Agent通过各种各样的Adapter和Connector来与外界(JVM之外)进行通信。同样外界(JVM之外)也必须通过某个Adapter和Connector来向JMX Agent发送管理或控制请求。Adapter 和Connector的区别在于:Adapter是使用某种Internet协议来与JMX Agent获得联系,Agent端会有一个对象 (Adapter)来处理有关协议的细节。比如SNMP Adapter和HTTP Adapter。而Connector则是使用类似RPC的方式来访问Agent,在Agent端和客户端都必须有这样一个对象来处理相应的请求与应答。比如RMI Connector。JMX Agent可以带有任意多个Adapter,因此可以使用多种不同的方式访问Agent。


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

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

代理层(Agent Level):主要定义了各种服务以及通信模型。该层的核心是一个MBean服务器,所有的管理构件都需要向它注册,才能被管理。注册在MBean服务器上管理构件并不直接和远程应用程序进行通信,它们通过协议适配器和连接器进行通信。而协议适配器和连接器也以管理构件的形式向MBean服务器注册才能提供相应的服务。
Agent 用来管理相应的资源,并且为远端用户提供访问的接口。Agent层构建在Intrumentation层之上,并且使用并管理 Instrumentation层内部描述的组件。通常Agent由一个MBeanServer和多个系统服务组成。另外Agent还提供一个或多个 Adapter或Connector以供外界的访问。



分布服务层(Distributed Service Level):主要定义了能对代理层进行操作的管理接口和构件,这样管理者就可以操作代理。然而,当前的JMX规范并没有给出这一层的具体规范。Distributed层关心Agent如何被远端用户访问的细节。它定义了一系列用来访问Agent的接口和组件,包括Adapter和Connector的描述。


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



参考连接:http://blog.chinaunix.net/uid-20749563-id-718398.html

http://baike.baidu.com/link?url=_OPVx-P76zjHUb3h09f-lFBABmlnSTkocbSMjI-XzWBHe27Nq_ViL9HR00ZQ1ObP



相关文章
|
8月前
|
存储 安全 大数据
大数据隐私保护:用户数据的安全之道
【10月更文挑战第31天】在大数据时代,数据的价值日益凸显,但用户隐私保护问题也愈发严峻。本文探讨了大数据隐私保护的重要性、面临的挑战及有效解决方案,旨在为企业和社会提供用户数据安全的指导。通过加强透明度、采用加密技术、实施数据最小化原则、加强访问控制、采用隐私保护技术和提升用户意识,共同推动大数据隐私保护的发展。
|
监控 安全 算法
uwb人员定位系统:人员轨迹实时定位
vuwb人员定位系统:人员轨迹实时定位
645 0
uwb人员定位系统:人员轨迹实时定位
|
存储 自然语言处理 API
Flutter应用的国际化支持:实现多语言环境的优雅策略
【4月更文挑战第26天】Flutter提供强大的国际化(i18n)和本地化(l10n)支持,使开发者能轻松实现应用多语言特性。通过定义`.arb`文件来管理字符串资源,使用`LocalizationsDelegate`加载资源,设置应用语言环境,以及在UI中使用`S.of(context).someString`访问字符串。进阶技巧包括字符串格式化、复数形式、双向文本和Unicode支持。充分测试确保所有语言正确显示。随着全球化需求增长,Flutter的国际化支持成为应用开发关键。
|
域名解析 存储 缓存
计算机网络选择题填空题判断题整理
计算机网络选择题填空题判断题整理
计算机网络选择题填空题判断题整理
|
12月前
|
图形学 开发者
U3D小游戏开发秘籍:实战代码优化与性能提升技巧
【7月更文第13天】Unity 3D(U3D)作为游戏开发界的瑞士军刀,以其强大的灵活性和跨平台能力,让无数创意化为指尖上的精彩。但对于初涉U3D的小游戏开发者而言,如何高效构建项目,确保流畅体验,是一门必修课。本文将深入浅出,结合实战代码示例,分享一系列优化与提升U3D小游戏性能的宝贵技巧。
219 1
|
前端开发 Java UED
解密Spring MVC异常处理:从局部到全局,打造稳固系统的关键步骤
解密Spring MVC异常处理:从局部到全局,打造稳固系统的关键步骤
221 0
|
编解码
FFT_频谱分析(数字信号处理)
用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重点在于频谱分辨率及分析误差。频谱分辨率D和频谱分析的点数N直接相关,其分辨率为2π/N 。因此2π/N≤D,可以据这个公式确定频率的分辨率。 FFT分析频谱的误差在于得到的是离散谱,而信号(非周期信号)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱。因此N要适当选择大一些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 对模拟信号进行谱分析时,首先要按照
872 1
FFT_频谱分析(数字信号处理)
|
Ubuntu 开发者 Docker
Docker镜像:构建、推送和创建多个容器实例
Docker已经成为容器化应用程序的标准。它允许开发者将应用程序和其依赖项封装到一个独立的容器中,确保应用程序在不同环境中具备一致性。在本文中,我们将探讨如何构建自定义Docker镜像、推送和拉取镜像到Docker Hub或私有仓库,以及如何从一个Docker镜像创建多个容器实例。
631 0
|
网络协议 前端开发 JavaScript
什么是http?
“超文本”这个词经常会引起误解,让人以为HTTP只能传输文本文件,个人觉得可能改名叫“超媒体传输协议”更加恰当。 本文对“协议”的解释比较通俗,严格来说协议应该包括语法、语义、同步规则和错误处理 我们通常使用浏览器访问的实际上是万维网(WWW),他是互联网(Internet)的一部分,但现在几乎很少有人能区分两者。
455 0
什么是http?
|
云安全 人工智能 Cloud Native
阿里云的认证有什么方向?几个等级?
通过阿里云认证就可获得入职阿里云的机会,还有可能被阿里云的合作企业录取。