jmx

本文介绍如何使用Spring框架实现JMX远程管理功能,包括配置MBeanExporter、启动HtmlAdaptorServer等步骤,并提供了具体的XML配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JMX是暴露监测和管理您的应用程序部件的好办法。春天还提供远程管理支持暴露JMX(jsr-160)和创建一个客户端管理。这个例子注册Spring bean作为一个JMX MBean,暴露了JMX服务器在JMX通讯协议(jmxmp),并创建一个客户端访问它。

连接到实例使用JMX管理工具,可以使用自带的JDK的安装。IDE中的断点可以设置在单元测试或thread.sleep可以增加暂停应用程序关闭。激活局部JMX访问,java的说法-dcom.sun.management.jmxremote测试开始时必须使用。

背景:部分扫描创建从servermanagerimpl弹簧豆。

http://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/jmx.html

配置文件

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 
http://www.springframework.org/schema/data/jpa 
http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd">


  <bean id="mBeanExporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="assembler" ref="assembler" />
        <property name="namingStrategy" ref="namingStrategy" />
<property name="server">
<bean class="javax.management.MBeanServerFactory" factory-method="createMBeanServer"></bean>
</property>
<property name="autodetect" value="true"/>
</bean>
<bean id="assembler" class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
        <property name="attributeSource" ref="jmxas" />
    </bean>
    <bean id="namingStrategy" class="org.springframework.jmx.export.naming.MetadataNamingStrategy">
        <property name="attributeSource" ref="jmxas" />
    </bean>
    <bean id="jmxas" class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource" />
<bean id="htmlAdaptorServer" class="com.sun.jdmk.comm.HtmlAdaptorServer" init-method="start">
<constructor-arg index="0" value="" />
<constructor-arg index="1" ref="authInfo" />
</bean>
<bean id="authInfo" class="com.sun.jdmk.comm.AuthInfo" >
<property name="login" value="" />
<property name="password" value="" />
</bean>

很简单的可以看下官网,

03-16
### JMX 的基本概念 JMX(Java Management Extensions,Java管理扩展)是一种为应用程序植入管理功能的框架[^1]。它通过一套标准化的代理和服务,使开发者能够在任何Java应用程序中实现管理功能。这种技术允许开发人员在运行时动态管理和监控资源。 #### 功能特点 JMX 提供的功能包括但不限于以下几个方面: - **线程管理**:可以实时查看和控制应用中的线程状态。 - **内存管理**:能够监控堆外内存、垃圾回收器的行为以及内存分配情况。 - **日志级别调整**:支持动态修改日志记录级别的能力。 - **服务操作**:例如远程触发服务重启或其他维护任务。 - **系统环境变量查询**:获取当前系统的配置参数或属性值。 上述特性使得 JMX 成为企业级应用不可或缺的一部分,在复杂环境中提供了极大的灵活性与便利性。 --- ### JMX 的架构组成 从结构上看,JMX 主要由三部分构成: 1. **MBean(Managed Bean)** MBeans 是核心组件之一,代表受管对象并封装了具体业务逻辑或者设备接口的信息。每一个 MBean 都对应着某个特定实体及其关联的操作方法和属性描述符[^2]。 2. **MBean Server** 它充当容器角色来注册各种类型的 MBeans 并协调它们之间的交互过程。此外还负责接收来自客户端请求并将之分发给相应的目标实例处理。 3. **Connector/Adaptor** Connectors 和 Adaptors 则是用来建立远端连接机制以便外部工具可以通过网络访问本地 JVM 上面部署的服务实例;前者更注重于保持原始 API 调用形式而后者倾向于转换成其他协议比如 SNMP 或者 Web Services 等便于集成到更大范围内的管理系统当中去。 --- ### 使用场景举例 以下是利用 JMX 进行性能调优的一个简单例子——监视 CPU 占用率变化趋势图绘制脚本片段如下所示: ```java import javax.management.*; import java.lang.management.ManagementFactory; public class CpuMonitor { public static void main(String[] args) throws Exception{ ObjectName name = new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME); // 获取平台上的 MXBean 实例 MBeanServer mbs = ManagementFactory.getPlatformMbeanServer(); while(true){ System.out.println("CPU Load:" + ((com.sun.management.OperatingSystemMXBean)mbs.getAttribute(name,"Instance")).getProcessCpuLoad()); Thread.sleep(1000); } } } ``` 此代码展示了如何借助 `javax.management` 包下的类库创建一个持续打印进程占用百分比的小型监测程序。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值