快速业务通道

Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
rty name="frequency" value="5000" />   <property name="messageTimeOut" value="10000" />   <property name="initialDelay" value="3000" />   <property name="messageFactories" ref="MessageFactories"/>   <property name="queueConnectionFactory" ref="RealJMSConnectionFactory"/> </bean>

Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2)(5)

时间:2011-02-13 IBM Nicholas Whitehead

清单 15 实现了两个消息工厂,它们是:

javax.jms.MapMessage 工厂,它将当前 JVM 的属性载入到每一条消息的负载中,并被配置为每个周期发送 10 条消息

javax.jms.ByteMessage 工厂,它将 JAR 文件中的字节载入到每一条消息的负载中,并被配置为每个周期发送 10 条消息

图 17 显示了综合消息监控的 APM 树。注意字节负载大小被附加到 javax.jms.ByteMessage 消息工厂名称的末尾。

图 17. 带有临时队列的综合消息的 APM 树

Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2) - 编程入门网

通过 JMX 监控消息传递服务

诸如 JBossMQ 和 ActiveMQ 这样的消息传递服务通过 JMX 公开了一个管理接口。我曾在 第 1 部分 中介绍过基于 JMX 的监控。下面我将简短地回顾一下这种监控,然后我将介绍基于 org.runtimemonitoring.spring.collectors.jmx.JMXCollector 类的 Spring 收集器以及使用它来监控 JBossMQ 实例的方法。由于 JMX 是一个恒定的标准,所以可以使用同一过程来监控任何公开 JMX 的指标,而且它的应用范围很广。

JMXCollector 有两个依赖项:

一个名为 LocalRMIAdaptor 的 bean 为本地 JBossMQ 提供了一个 javax.management.MBeanServerConnection。在这种情况下,连接是通过发出一个对 JBoss org.jboss.jmx.adaptor.rmi.RMIAdaptor 的 JNDI 查找来获取的。假定可以提供任何可用的验证凭证,并且 Spring org.springframework.jmx.support 包提供了很多工厂 bean 来获取 MBeanServerConnection(参见 参考资料)的不同实现,这样的话其他的提供者通常很容易获取。

JMX 收集属性的一个配置文件,它打包在包含 org.runtimemonitoring.spring.collectors.jmx.JMXCollection 的实例的收集 bean 中。这些是对 JMXCollector 发出的关于要收集哪些属性的指令。

JMXCollection 类展示了一些常见于 JMX 监控器的属性。基本的配置属性有:

targetObjectName :它是旨在收集的 MBean 的完整 JMX ObjectName 名称,但它也可以是一个通配符。收集器为所有与通配符模式相匹配的 MBeans 查询 JMX 代理,然后从每一个代理中收集数据。

segments :它是 APM 跟踪名称空间的一个片断,收集到的指标被跟踪到了这个 APM 跟踪名称空间。

metricNames :它可以是一组指标名称,每一个 MBean 属性都要被映射到该指标名称;也可以是一个 * 字符,它指导收集器使用 MBean 提供的属性名。

attributeNames :它是一组必须从每一个目标 MBean 中收集的 MBean 属性名。

metricTypes 或者 defaultMetricType :前者是必须用于每一个属性的一组指标类型,后者是必须应用于所有属性的某个指标类型。

Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2)(6)

时间:2011-02-13 IBM Nicholas Whitehead

MBean ObjectName 通配符功能非常强大,因为它可以有效地发现监控目标,而无需为每一个目标配置监控器。对于 JMS 对列,JBossMQ 为每一个队列创建了一个单独的 MBean,所以如果我想监控每一个队列中的消息数(称为队列长度),我只需要指定诸如 jboss.mq.destination:service=Queue,* 这样的通用通配符,JMS 队列 MBean

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号