利用spring和JMX监测程序运行
来源:互联网 发布:淘宝怎么货源怎么找 编辑:程序博客网 时间:2024/04/20 14:14
最近参加短信网关的开发,开发技术采用了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和JMX监测程序运行
- 用JMX监测JVM的运行参数
- 用JMX监测JVM的运行参数
- 用JMX监测JVM的运行参数
- Jvisualvm使用JMX和jstatd远程连接主机监测tomcat
- Jvisualvm使用JMX和jstatd远程连接主机监测tomcat
- 使用JMX监测Cassandra
- 利用Mail实时监测服务器程序状态
- 监测程序时候运行,没有启动
- magento优化-性能-程序运行时间监测
- JMX接口监测(一)
- 利用Spring执行和配置schedule程序
- spring jmx客户端 和服务端配置
- jmx,采用spring和jconsole实现
- 利用dos控制台编译和运行java程序
- 压力监测程序sqlserver和MYSQL版
- 利用JMX统计远程JAVA进程的CPU和Memory
- 利用JMX统计远程JAVA进程的CPU和Memory
- JVM将为类的instance和static变量赋上缺省值(默认值)
- n皇后问题
- 个人简历
- 要么自宫要么滚蛋
- FCKeditor 2.0 的设置.修改.使用
- 利用spring和JMX监测程序运行
- 强烈推荐深蓝网络电视
- 一位老工程师给年轻人的“十大忠告” ZZ
- ajax自动实时更新数据
- **全部個人收藏
- Boot.ini文件详解
- VB中的一個特性
- 工作流之大局势2006版
- 第一篇blog文章