JMX
Java Management Extensions,Java管理扩展,初步看了些资料,以为是专门管理,监控jvm的一些信息的,特别是visual VM这个监控jvm的东西,还有一个添加JMX连接的时候(我自己想错了,那样的话应该叫jvm Management Extensions),其实他能使得基于java语言开发的程序能被管理,并且是可扩展的。
Jdk以前是通过JVMPI之类来监测Java程序运行中的jvm和系统的一系列情况,现在通过jmx就可以做到,这是通过java.lang.management 包来实现的,这个包是 JMX 在 JDK方面 的一个应用,并不是表示jmx就是一个监控jvm的东西。
我们可以用jmx来监控我们的系统,通过公布API的方式,但是,这里采用监控这个词,也是受了前面的例子的影响,实际上,个人觉得,就可以用jmx来开发我们的系统。
现在的jboss,hibernate,tomcat各种应用都号称实现了JMX规范,将可管理,可调用的MBean注册到MBeanServer中,通过一种类似“web服务”的方式公布出去,并且伴有一个名字,可以通过该名字找到该MBean。并且,这里的MBean是可以被管理的,说到这里又想到了OSGI。
JMX与Web Service
个人认为,我们实现JMX规范,将东西发布出去,和通过web Service的方式是很类似的,也是可以远程调用的,只是相对的web Service的方式更加SOA一些,不过JMX号称也要提供对非java客户端的支持,也就是跨语言了吧。。。
现在的JMX连接方式:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/server"); JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
看了下源码,貌似还是通过RMI来实现的,不知道它要怎么实现非java客户端支持。
从这里,我觉得JMX可以实现的,我们也都可以通过web Service实现,只是看在它有个“M”上,以后如果有什么系统管理,监控方面的,可以考虑使用它,也许开发,个人觉得还是使用web service好一些。
说到这里,感觉OSGI与JMX也好像,在看到JMX能够对MBean进行管理的时候,我就觉得跟OSGI很像,OSGI管理的是Bundle,找了找资源,原来早就有人考虑过了:
http://teamojiao.iteye.com/blog/438334
顺便,在查资料的时候,发现一个东西,
if your question means, how to manage an OSGi runtime with JMX, you should have a look at MAEXO (http://code.google.com/p/maexo/). With MAEXO bundles up and running you will transparently get MBeans for a fair amount of services of the OSGi runtime as well as MBeans for your own services and bundles. Just have a look at the screencast.
摘一些话:仅做参考
<网友回复>
一个大系统中,各内部模块系统之间的基于接口方式的互相调用和治理,使用jmx是最佳方案.
带来的好处是
1.面向接口,远程调用对于开发人员是透明的,模块在调用jmx接口时,与调用本地方法几乎相同.
2.可视化的治理界面, 通过 Jconsole等jmx客户端,可以实时监控系统,并且可实时调用方法进行某些操作.
典型应用场景:
某聊天系统,一台服务器作为 在线用户列表服务器 A1, n台服务器为用户提供聊天业务处理 N1 ,N2,N3...,
一台服务器作为后台治理系统A2.
系统治理员现在进行下面这样一个操作,察看某用户是否在线,找到该用户,发现其在线,则将该用户加入黑名单,并踢下线.
对应的jmx接口可以由以下几个:
A1为A2提供查询在线用户jmx接口,加入黑名单接口,kickout接口,
A1为N1..等服务器提供以下接口: 注册业务服务器,添加在线用户.查找黑名单用户
N1...到N3为A1提供kickout接口.
因此在上面的踢下线操作,则由用户在A2的web界面发出,交由A1执行,A1记录黑名单之后,再找到用户所在业务服务器调用N1提供的接口让用户下线.
以上情形是在生产环境下的部署,而在开发工作,则可以将A1,A2,N...N3等功能合并在一个应用中调试. 由于使用的是jmx接口,在本地调试合并之后,可以直接调用应用内部接口方法.
这样借助jmx实现的应用模块的灵活组装与拆分,使得系统的可以根据负载需要,根据性能情况,灵活的拆分和整合部署分布式的应用.
替代方案,选择webservice,xmlrpc等,但是这些都需要手工编写或用工具生成大量的代码来辅助完成接口间的java对象序列化 。
经典jmx案例:
1.Jboss.使用jmx治理内部的各个service。
2. 基于java的开源网管软件 Hyperic HQ ,通过jmx与各被治理资源进行通讯和信息采集.
<网友回复>JMX是一个治理的框架。
当我们想使用JMX的时候,就要问,我们的系统当中有需要监控治理的资源或者对象吗?实事求是一点,我们不能为了想使用一个高端的技术,就歪曲系统的本来面目。
假如第一个问题是肯定的,接下来就是看这些资源是否有生命周期。
经典案例:jboss就是将所有可部署的组件作为资源来治理,这些组建都有其生命周期。这个理念甚至延伸到了其系统内部,将其内部的服务作为组件纳入到 JMX中来,成就了jboss基于jmx的微内核系统。
- 大小: 32.8 KB
分享到:
相关推荐
首先,理解JMX的原理和作用是至关重要的。JMX允许开发者创建和注册管理对象(MBeans),这些对象代表了应用程序中的资源或服务。MBeans提供了操作和查询这些资源的方法,使得管理员可以通过JMX代理(如JConsole)来...
这些资源对于理解JMX工作原理、开发和集成JMX管理功能、以及实现远程监控和管理至关重要。JMX的核心概念包括: - **MBean**(Managed Bean):MBean是Java对象,代表可管理的资源,如系统服务、硬件设备或应用程序...
这个工具对于理解和优化Kafka消费者的性能至关重要。 在标签中提到了"kafka",Apache Kafka是一种分布式流处理平台,广泛用于实时数据管道和流应用。它能够处理海量的实时数据,提供高吞吐量、低延迟的消息传递,并...
`jmx-tools.zip`这个压缩包可能包含了一些用于操作和可视化JMX功能的工具。 `HtmlAdaptorServer`是JMX提供的一种机制,它允许通过HTTP协议访问和管理MBeans。这个服务器实现了一个JMX远程过程调用(RMI)接口,使得...
总的来说,"jmx-1.2.1(jmxri+jmxtools) jar"是Java环境中管理和监控的重要工具集,它提供了远程访问和管理Java应用的能力,以及一系列辅助工具和库,使得开发者和运维人员能够更好地控制和理解他们的Java系统。
《深入理解Java代理与JMX技术:以agent-jmx-2.2.1.jar.zip为例》 在Java世界中,代理(Agent)和Java管理扩展(JMX, Java Management Extensions)是两个重要的技术概念,它们在系统管理和监控方面发挥着核心作用。...
"jmx-1_2_1-ri.zip" 文件很可能是JMX 1.2.1的Reference Implementation(RI),即官方提供的参考实现,这通常包括了完整的源代码,以便开发者深入了解其工作原理和定制需求。 JMX的核心概念包括MBeans(Managed ...
标题 "sycdtk-cmdline-jmxclient-master_java_" 暗示这是一个关于Java的项目,特别是涉及命令行界面(cmdline)和Java管理扩展(JMX)客户端的实现。JMX是一种在Java应用程序中管理和监控管理资源的标准机制。这个...
为了更好地理解和利用JMX,你需要了解以下概念: 1. MBean (Managed Bean):MBean是JMX中的基本管理单元,它代表了要管理的对象。MBean可以是标准的、自定义的或者由MBean服务器自动创建的。 2. MBean Server:...
《深入理解Java代理与JMX技术:以agent-jmx-2.1.6.jar.zip为例》 在Java世界中,代理(Agent)和Java管理扩展(JMX, Java Management Extensions)是两个重要的概念,它们在复杂的系统管理和监控中发挥着至关重要的...
申乐公司是知名的继电器制造商,其JMX-100F磁保持继电器是他们产品线中的一个重要成员。这款继电器采用磁保持技术,具有高效、稳定和低功耗的特点。 磁保持继电器的工作原理是基于电磁场的原理,它在没有电流通过时...
【标题】"truevfs-comp-jmx-0.9.2.zip"是一个压缩包,其中包含的是TrueVFS组件的JMX(Java Management Extensions)模块的0.9.2版本。TrueVFS是一个Java库,它提供了对虚拟文件系统的全面支持,使开发者能够方便地在...
在您提供的信息中,我们关注到三个关键文件:`jmx-1_2_1-ri.jar`、`jmxtools.jar`和`jmx-1_2-api.zip`,它们都是JMX相关的核心组件。 `jmx-1_2_1-ri.jar` 是JMX运行时实现(Runtime Implementation)的jar文件。这...
《JMX in Action》是一本深入探讨Java管理扩展(Java Management Extensions, JMX)技术的专业书籍,对于希望理解和掌握JMX的IT从业者来说,是一份不可或缺的参考资料。JMX是Java平台上的一个标准组件,它提供了管理...
Java Management Extensions (JMX) 是Java平台上的一个标准技术...尽管描述中提到“介绍没用”,但了解JMX、JMS以及它们如何通过`jmxtools.jar` 和 `jmxri.jar` 实现是至关重要的,这对于理解和利用这些资源至关重要。
对于开发者而言,理解并掌握JMXri的工作原理和使用方法,能极大地提升他们对复杂系统进行诊断和优化的能力。在Maven项目中正确配置和使用此依赖,可以帮助构建出更健壮、更易于管理和维护的软件系统。
Java管理扩展(JMX)是Java平台提供的一种标准机制,用于管理和监视应用程序、服务和设备。在本项目中,"jmx监控weblogic,tomcat,...理解JMX的工作原理和如何与各种应用服务器集成是提升系统运维效率的关键技能。
JMX-1_1-ri.zip文件包含了JMX 1.1版本的运行时接口(Runtime Interface)及其相关的文档,这是一份重要的资源,特别对于开发者和系统管理员来说,他们需要理解并操作Java环境中的管理功能。 JMX的核心概念包括...
《申乐磁保持继电器JMX-60F产品样本》是关于申乐公司推出的JMX-60F型号磁保持继电器的详细技术资料,主要用于介绍该产品的特性和应用。磁保持继电器是一种特殊类型的继电器,它利用永久磁铁的磁力来保持其触点状态,...
在Java世界里,JMS(Java Message ...理解并熟练使用这些技术,对于提升Java应用的可维护性和可管理性至关重要。这些jar文件的提供,使得开发者无需因找不到特定版本的依赖而困扰,从而能更专注于应用的开发和优化。