利用spring和JMX监测程序运行

原创 2006年06月11日 20:19:00

    最近参加短信网关的开发,开发技术采用了spring+hibernate+mule+jms;从业务层发送到手机用户的信息先发送到JMS服务器的一个队列里(jms:queue_MT),短信网关一直监测该队列(jms:queue_MT),如果发现队列中有新的信息就取出准备发送;这样可以实现了架构的松耦合。

   但是由于移动方面规定的滑动窗口大小只有16,如果几个不同的业务同时向用户群发信息的话就会造成有很多信息堵塞。上个星期五,我的师兄告诉我由于发送信息的速度比较慢,已经上行了20000条信息,但是只收到5000条信息的回复,也就是说有15000条信息在等待发送。为了实时监测短信网关发送信息的情况,周末决定利用JMX实现对网关的监测。主要是监测待发送信息的数量。

1.导出的MBean为ConnectionBean,该类有一size的属性标识待发送信息的数量
<beans>
 <bean id="connection" class="com.ll.smsbeans.ConnectionBean">
      <constructor-arg index ="0" ><value>900509</value></constructor-arg>
   <constructor-arg index ="1"><value>1234</value></constructor-arg>
    </bean>
 
 2.配置MbeanExporter类并传入需要导出的MBean

代码:
 <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
  <property name="beans">
   <map>
    <entry key="bean:name=connectionBean">
      <ref local="connection"/>
    </entry>
   </map>
  </property>
  <property name="server" ref="mbeanServer"/>
 </bean>
   

3.注意当使用一个RMI-based连接器时,你需要启动lookup服务(tnameserv或rmiregistry)用来完成名称注册。如果你通过RMI使用Spring发布远程服务,Spring还要构造一个RMI注册项。如果没有,你可以容易地使用下面的配置项启动一个注册:

代码:
  <bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"> 
   <property name="port" value="9875"/>
  </bean>

4.创建一个MBeanServer
如上所示的配置中假定该应用运行在一个有且只有一个MbeanServer正在运行的环境中。在这种情况下,Spring将定位正在运行的MbeanServer并注册你的beans到其中。这在你的应用运行在一个拥有自己的MbeanServer的容器内如Tomcat或者IBM WebSphere时很有用。
然而,这个方法无法用于独立环境中,或者当它运行在一个没有提供MbeanServer的容器时。为了克服这种困难,你可以通过在配置中声明添加一个org.springframework.jmx. support.MbeanServerFactoryBean的实例来创建MbeanServer的实例。通过设置MbeanExporter的server属性为MbeanServerFactoryBean,你同样可以确保这个MbeanServer被使用。如下所示:
 代码:
 <bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"/>
 

5.服务端连接器
Spring JMX使用下面的配置创建、启动和发布一个JSR-160 JMXConnectorServer

代码:
 <bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean">
       <property name="objectName" value="connector:name=rmi"/>
      <property name="serviceUrl"  value="service:jmx:rmi://localhost/jndi/rmi://localhost:9875/myconnector"/>
   </bean>

  最后,可以利用JDK5.0附带的JMX工具JConsole.exe作为客户端连接到服务器中实时参考信息的发送情况。在JConsole.exe的 连接->高级->service地址中填写:service:jmx:rmi://localhost/jndi/rmi://localhost:9875/myconnector即可!

使用Spring定时任务并且通过AOP监控任务执行情况

本文讲的是通过Spring注解的方式实现任务调度。只要引入了spring-context包就能够在项目中使用注解方式的任务调度。 下面看具体配置 需要在Spring配置文件中加入task的...
  • lzy1357986420
  • lzy1357986420
  • 2016年07月21日 23:20
  • 301

spring4 集成JMX监控

单机监控在javaconfig类中开启注解@EnableMBeanExport或者 在传统的xml中添加来看看如何使用注解吧@ManagedResource 将MBeanController导出为MB...
  • love13135816
  • love13135816
  • 2017年05月18日 16:55
  • 860

Spring与JMX集成

 Spring与JMX集成,实现方式灵活而且简单,主要体现在:1、可以自动探测实现MBean接口的MBean对象,而且可以将一个普通的Spring Bean注册为MBean;2、定制管理MBean的接...
  • shirdrn
  • shirdrn
  • 2011年04月24日 13:00
  • 26299

使用spring+JMX热部署配置文件

项目中,我们经常使用配置文件,但是里面的某些属性经常变化,特别是测试的时候,某些值不稳定。虽然可以直接停掉服务器,修改该值,然后重启(不需要编译),总归是比较麻烦。所以最好能在不停服务器的情况下,即时...
  • Allen_jinjie
  • Allen_jinjie
  • 2016年03月11日 18:32
  • 1220

第20章-使用JMX管理Spring Bean

使用JMX管理Spring Bean 学习内容 将Spring bean暴露为MBean 远程管理Spring Bean 处理JMX通知 应用背景 Spring对DI的支持是通过在应用中配...
  • zhangduilei
  • zhangduilei
  • 2017年07月27日 10:08
  • 289

SpringBoot34-springboot应用监控-http,JMX,SSH

spring boot提供了运行时的应用监控和管理的功能。我们可以通过http,JMX,SSH协议来进行操作。审计,监控及指标信息将会自动得到。      spring boot提供了监控和管理端点:...
  • wj903829182
  • wj903829182
  • 2017年11月06日 21:30
  • 384

spring jmx客户端 和服务端配置

服务端 客户端 $...
  • u012635819
  • u012635819
  • 2015年04月03日 17:04
  • 754

Spring MX4J JMX基于注解的环境集成

Spring MX4J JMX集成最近在看jmx,网上的资料很多,但是能够拿来即用的不多,这是我在本地经过多次测试的一个可行方案(基于注解):maven依赖 mx4j ...
  • jiang15933956295
  • jiang15933956295
  • 2017年04月07日 23:22
  • 361

通过JMX访问Spring的Bean

今天看spring源码的时候,发现了在finishRefresh的时候做了一个奇怪的操作 LiveBeansView.registerApplicationContext(this); 后来看了各...
  • u013076044
  • u013076044
  • 2017年08月13日 18:13
  • 110

Spring与MX4J集成实现JMX管理

MX4J是一个开源JMX管理框架,支持JSR3 (JMX) 和JSR160 (JMX Remote API)。通过Spring将MX4J集成到我们的应用系统中,可以通过HTTP协议适配,能够基于Web...
  • hj7jay
  • hj7jay
  • 2016年04月14日 09:33
  • 1508
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用spring和JMX监测程序运行
举报原因:
原因补充:

(最多只允许输入30个字)