二、代码监控
import java.util.Collection;
import org.apache.activemq.broker.jmx.BrokerViewMBean;
import org.apache.activemq.broker.jmx.QueueViewMBean;
import org.apache.activemq.broker.jmx.TopicViewMBean;
import org.apache.activemq.web.RemoteJMXBrokerFacade;
import org.apache.activemq.web.config.SystemPropertiesConfiguration;
/**
* JMS监控
* @author showlike
* @4:53:41 PM @Jan 6, 2014
*/
public class JmsMonitoring {
public static void main(String[] args) {
try{
RemoteJMXBrokerFacade createConnector = new RemoteJMXBrokerFacade();
//填写链接属性
System.setProperty("webconsole.jmx.url","service:jmx:rmi:///jndi/rmi://127.0.0.1:11099/jmxrmi");
System.setProperty("webconsole.jmx.user", "controlRole");
System.setProperty("webconsole.jmx.password", "abcd1234");
//创建配置
SystemPropertiesConfiguration configuration = new SystemPropertiesConfiguration();
//创建链接
createConnector.setConfiguration(configuration);
broker(createConnector);
// topic(createConnector);
queue(createConnector);
}catch(Exception e){
e.printStackTrace();
}
}
/**
* broker 监控
* @author showlike
* @param createConnector
* @throws Exception
* @date Jan 6, 2014 4:54:06 PM
*/
public static void broker(RemoteJMXBrokerFacade createConnector) throws Exception{
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());
}
/**
* topic 使用情况监控
* @author showlike
* @param createConnector
* @throws Exception
* @date Jan 6, 2014 4:54:06 PM
*/
public static void topic(RemoteJMXBrokerFacade createConnector) throws Exception{
System.out.println("=============Topic =================");
Collection<TopicViewMBean> topicViewList = createConnector.getTopics();
int i = 1;
for (TopicViewMBean topicViewMBean : topicViewList) {
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());
System.out.println("////////////////// Topic "+i+" //////////////////");
i++;
}
}
/**
* queue 使用情况监控
* @author showlike
* @param createConnector
* @throws Exception
* @date Jan 6, 2014 4:54:53 PM
*/
public static void queue(RemoteJMXBrokerFacade createConnector) throws Exception{
System.out.println("============Queue===================");
int i = 1;
Collection<QueueViewMBean> queueViewList = createConnector.getQueues();
for (QueueViewMBean queueViewMBean : queueViewList) {
System.out.println(" queue beanName =" + queueViewMBean.getName());
System.out.println("ConsumerCount ="+ queueViewMBean.getConsumerCount());
System.out.println("DequeueCount =" + queueViewMBean.getDequeueCount());
System.out.println("EnqueueCount =" + queueViewMBean.getEnqueueCount());
System.out.println("DispatchCount =" + queueViewMBean.getDispatchCount());
System.out.println("ExpiredCount =" + queueViewMBean.getExpiredCount());
System.out.println("MaxEnqueueTime ="+ queueViewMBean.getMaxEnqueueTime());
System.out.println("ProducerCount =" + queueViewMBean.getProducerCount());
System.out.println("MemoryPercentUsage ="+ queueViewMBean.getMemoryPercentUsage());
System.out.println("MemoryLimit =" + queueViewMBean.getMemoryLimit());
i++;
}
System.out.println("total queue : "+i);
}
}
分享到:
相关推荐
JMX允许管理员远程管理和监控Java应用程序,包括ActiveMQ。通过JMX,可以创建和管理QUEUE和TOPIC。 1. 连接JMX:使用JConsole或JMX Console等工具连接到运行中的ActiveMQ服务器。 2. 查找MBean:在MBean浏览器中...
在压缩包文件“wsheng-jms”中,可能包含了使用ActiveMQ和JMS的示例代码或教程,通过学习这些资源,你可以更深入地了解如何在实际项目中使用这些技术。 总结来说,JMS和ActiveMQ为分布式系统提供了一种健壮的消息...
6. **编写应用程序代码**:在你的Web应用程序中,使用JMS API创建生产者和消费者,与ActiveMQ服务器进行交互。例如,使用`ConnectionFactory`创建连接,然后创建会话、目的地(队列或主题)、生产者和消费者。 7. *...
总的来说,本示例旨在演示如何利用ActiveMQ作为JMS实现,通过编写Java代码发送消息。理解JMS和ActiveMQ的工作原理及其API的使用,对于构建高效、可靠的分布式应用程序至关重要。通过实践和探索"JMS.txt"中的代码,你...
7. **ActiveMQ管理**:介绍使用控制台或命令行工具监控和管理ActiveMQ实例。 8. **syslog集成**:讲解如何配置ActiveMQ以接收和处理syslog日志,以及如何解析和转发这些日志。 9. **问题排查与优化**:分享在使用...
2. **创建连接工厂**:在Java代码中,我们需要创建一个JMS连接工厂,通常使用`ActiveMQConnectionFactory`类。 3. **建立连接和会话**:通过连接工厂创建JMS连接,然后创建会话。会话是操作消息的上下文,支持事务和...
ActiveMQ提供了Java API供开发者直接在代码中使用,主要包括`javax.jms`包下的接口和类。 1. **创建ConnectionFactory**:连接工厂是创建到ActiveMQ服务器连接的工厂类,例如`ActiveMQConnectionFactory`。 2. **...
2. **ActiveMQ的安装与配置**:讲解如何下载ActiveMQ,配置其配置文件(如`activemq.xml`),启动和关闭Broker,并通过Web管理控制台进行监控。 3. **JMS API的使用**:介绍JMS接口,如ConnectionFactory、...
### ActiveMQ-JMS好用实例详解 #### 一、ActiveMQ简介及特点 **ActiveMQ** 是一个非常流行的开源消息中间件,它基于 **Java消息服务(JMS)** 规范,能够提供高度可靠的消息传递机制。ActiveMQ 以其丰富的功能集、...
【JMS ActiveMQ】知识点详解 一、MQ简介 消息队列(MQ)是一种用于分布式系统之间交换信息的技术。它允许应用程序将消息存储在内存或磁盘上,直到被其他应用程序消费。MQ使得应用程序可以独立运行,无需关心彼此的...
Apache ActiveMQ是开源的Java消息服务(JMS)提供商,它是Apache软件基金会的一部分,用于处理消息中间件。在分布式系统中,消息队列如ActiveMQ起着至关重要的作用,它们作为应用程序之间的通信桥梁,实现解耦和异步...
此外,ActiveMQ还提供了丰富的管理工具和监控功能,确保了消息传递的稳定性和高效性。 本实例将带领初学者了解如何使用JMS和ActiveMQ构建一个简单的消息传递系统。首先,我们需要安装以下软件包: 1. **...
在视频教程中,你将看到如何在Java项目中集成ActiveMQ客户端,以及如何编写代码来发送和接收消息。 除了基本的JMS操作,你还将接触到高级功能,比如消息的事务处理、消息选择器(用于过滤接收到的消息)、消息组...
Apache ActiveMQ 是一个开源的JMS提供商,它是Apache软件基金会的一部分,也是最广泛使用的JMS实现之一。ActiveMQ提供了多种协议支持,包括开放消息传递协议(STOMP)、AMQP、MQTT等,使得它能够与各种不同类型的...
3. **启动与管理**:通过命令行或管理界面启动ActiveMQ服务,你可以使用内置的Web控制台来监控和管理消息队列,包括查看队列状态、创建和删除队列等操作。 4. **JMS编程模型**:在`activemq.doc`文档中,你将了解到...
本实例代码工程"Spring+ActiveMQ整合实例代码工程"正是结合两者,展示了如何在Spring环境中配置并使用ActiveMQ进行消息传递。 首先,我们需要了解Spring与ActiveMQ整合的基本概念。Spring框架提供了对多种消息...
Apache ActiveMQ是业界广泛使用的开源消息中间件,它基于Java平台并遵循JMS(Java Message Service)标准。ActiveMQ 5.7版本是其历史上的一个重要版本,提供了稳定且高效的消息传递服务。在这个版本中,我们可以深入...
Apache ActiveMQ是业界广泛使用的开源消息中间件,它遵循Java Message Service (JMS) 规范,提供高效、可靠的异步消息传递服务。在“activemqactivemq”这个主题下,我们主要关注如何使用ActiveMQ进行消息的接收和...
在"jmsSend"这个文件名中,我们可以推测这可能是演示如何使用Spring发送JMS消息的示例代码或配置。通常,这样的示例会展示如何设置`JmsTemplate`,配置目的地(如队列或主题),以及如何编写消息监听器来接收消息。 ...
ActiveMQ是Apache软件基金会的一个项目,它是一个开源的JMS提供者,支持多种协议,如TCP/IP、SSL、NIO、HTTP、HTTPS等,同时还提供了Web控制台以方便管理和监控。ActiveMQ以其稳定性和高性能著称,是许多企业的首选...