首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

jconsole 经过网络监控 ActiveMQ

2012-07-29 
jconsole 通过网络监控 ActiveMQ直接下载最新版ActiveMQ ?1、${ACTIVEMQ_HOME}/conf/activemq.xml 中的 bro

jconsole 通过网络监控 ActiveMQ

直接下载最新版ActiveMQ

?

1、${ACTIVEMQ_HOME}/conf/activemq.xml 中的 broker 节点增加??useJmx="true" 属性

?

2、${ACTIVEMQ_HOME}/conf/activemq.xml 中的?managementContext 节点修改成如下样子

?

<managementContext>

? <managementContext createConnector="true" connectorPort="11099" />

</managementContext>?

?

3、${ACTIVEMQ_HOME}/bin/activemq (linux环境) 中,找到?SUNJMX 的配置区域,不同版本会有不同的配置方法

? ? ?我在5.5这个版本下找到?ACTIVEMQ_SUNJMX_START 变量来对 SUNJMX 进行配置,默认是注释的,不需要做任何修改,直接增加如下语句即可:

?

?

ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Djava.rmi.server.hostname=自己的IP"


?

注:如果只改第 1、2 步,也可以用 jconsole 通过 11099 端口监控运行状态,但是只能在本机进行监控。

?

?

至此,通过 activemq start 命令启动服务后,就可以通过网络对 本机IP的11099端口进行 JMX 监控了,

不过说实在的,用jconsole或者 jvisualvm 也监控不出什么实质性的东西,主要还得用 activemq 自己提供的监控

API来检查服务器运行状态,这个比较靠谱。

?

比如如下代码:

?

RemoteJMXBrokerFacade createConnector = new RemoteJMXBrokerFacade(); ?

System.setProperty("webconsole.jmx.url","service:jmx:rmi:///jndi/rmi://192.168.137.2:11099/jmxrmi");

System.setProperty("webconsole.jmx.user", "admin"); ?

System.setProperty("webconsole.jmx.password", "activemq");?

SystemPropertiesConfiguration configuration = new SystemPropertiesConfiguration(); ?

createConnector.setConfiguration(configuration);

try {

BrokerViewMBean brokerAdmin = createConnector.getBrokerAdmin();

System.out.println("==========Connection ================="); ?

System.out.println("BrokerName =" + brokerAdmin.getBrokerName()); ?

System.out.println("TotalMessageCount =" + brokerAdmin.getTotalMessageCount()); ?

System.out.println("TotalConsumerCount =" + brokerAdmin.getTotalConsumerCount()); ?

System.out.println("TotalDequeueCount =" + brokerAdmin.getTotalDequeueCount()); ?

System.out.println("TotalEnqueueCount =" + brokerAdmin.getTotalEnqueueCount());?

Collection<TopicViewMBean> topicViewList = createConnector.getTopics(); ?

for (TopicViewMBean topicViewMBean : topicViewList) { ?

System.out.println("=============Topic ================="); ?

? ?System.out.println("beanName =" + topicViewMBean.getName()); ?

? ?System.out.println("ConsumerCount ="+ topicViewMBean.getConsumerCount()); ?

? ?System.out.println("DequeueCount ="+ topicViewMBean.getDequeueCount()); ?

? ?System.out.println("EnqueueCount ="+ topicViewMBean.getEnqueueCount()); ?

? ?System.out.println("DispatchCount ="+ topicViewMBean.getDispatchCount()); ?

? ?System.out.println("ExpiredCount ="+ topicViewMBean.getExpiredCount()); ?

? ?System.out.println("MaxEnqueueTime ="+ topicViewMBean.getMaxEnqueueTime()); ?

? ?System.out.println("ProducerCount ="+ topicViewMBean.getProducerCount()); ?

? ?System.out.println("MemoryPercentUsage ="+ topicViewMBean.getMemoryPercentUsage()); ?

? ?System.out.println("MemoryLimit =" + topicViewMBean.getMemoryLimit()); ?

}

} catch (Exception e) {

e.printStackTrace();

}

?

?

只演示一下API,更多的应用可以通过 API 文档得到解释。

热点排行