Apache Active MQ 之Queue
Pre-Condition: 安装Apache ActiveMQ并启动服务
消费者:
package com.wx.jms.queue;
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;
/**
* @Class name: Topic_Test.java
*
* Short description on the purpose of the program.
*
* @author: wangxiang
* @modified: Mar 22, 2011
*
*/
public class Queue_Test {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection conn = factory.createConnection();
conn.start();
Queue queue = new ActiveMQQueue("myqueue");
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageConsumer consumer1 = session.createConsumer(queue);
consumer1.setMessageListener(new MessageListener(){
public void onMessage(Message msg) {
try {
System.out.println("consumer1:" + ((TextMessage)msg).getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
MessageConsumer consumer2 = session.createConsumer(queue);
consumer2.setMessageListener(new MessageListener(){
public void onMessage(Message msg) {
try {
System.out.println("consumer2:" + ((TextMessage)msg).getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
});
}
}
生产者:
package com.wx.jms.queue;
import javax.jms.Connection;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;
/**
* @Class name: TopicProducer_Main.java
*
* Short description on the purpose of the program.
*
* @author: wangxiang
* @modified: Mar 22, 2011
*
*/
public class QueueProducer_Main {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(
"tcp://localhost:61616");
Connection conn = factory.createConnection();
conn.start();
Queue queue = new ActiveMQQueue("myqueue");
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer producer = session.createProducer(queue);
for (int i = 0; i < 10; i++) {
producer.send(session.createTextMessage("msg " + i));
}
}
}
结果:
consumer2:msg 0
consumer1:msg 1
consumer2:msg 2
consumer1:msg 3
consumer2:msg 4
consumer1:msg 5
consumer2:msg 6
consumer1:msg 7
consumer2:msg 8
consumer1:msg 9
分享到:
相关推荐
《Active MQ in Action》是关于Apache ActiveMQ的权威指南,由Manning出版社出版。这本书深入浅出地介绍了ActiveMQ这一开源消息代理系统,是理解、配置、管理和优化ActiveMQ的关键资源。ActiveMQ是Apache软件基金会...
2. **商业JMS Providers**:例如IBM WebSphere MQ、BEA WebLogic JMS、Oracle AQ、NonStop Server for Java Message Service (JMS)、Sun Java System Message Queue、Sonic jms、TIBCO Enterprise For JMS和iLinkMQ...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker API,JMS)标准,提供了可靠的消息传输服务。在Java开发环境中,Maven是常用的项目构建工具,它通过POM...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker Protocol,即AMQP)和Java消息服务(Java Message Service,JMS)规范。消息队列是分布式系统中的一个重要概念...
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的...
作为消息队列(Message Queue,简称MQ)的一种,它主要用来在分布式系统之间进行消息传递。 **引入中间件的优势:** - **减少服务器间的依赖**:在没有引入消息中间件的情况下,各个服务之间可能存在大量的相互依赖...
在这个"zis.rar_active MQ_activemq_java _activeMQ_java 转发"的压缩包中,我们可以推测其主要内容可能涉及如何使用ActiveMQ在Java环境中实现消息的转发功能。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ...
ActiveMQ-CPP是Apache ActiveMQ的C++接口,允许开发者使用C++语言与ActiveMQ消息队列服务器进行通信。此外,Winkeemq-cpp是基于ActiveMQ-CPP构建的API库,它进一步简化了编程,通过处理初始化、清理等常规任务,减轻...
- 根据消息类型(如点对点Queue或发布订阅Topic),创建消息目标(Destination)。 - 生产者通过会话向目标发送消息,消费者从目标接收消息。 ActiveMQ还支持消息过滤机制,允许生产者为消息设置属性(Properties)...
2.解压缩apache-activemq-5.5.1-bin.zip,然后双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。 3、启动ActiveMQ以后,登陆:http://localhost:8161/admin/,创建一个Queue,命名为FirstQueue。
<bean id="queue" class="org.apache.activemq.command.ActiveMQQueue"> ``` 接下来,创建消息监听器容器和监听器,如下所示: ```xml <property name="destination" ref="queue"/> ``` ...
在高性能的消息系统领域,Artemis已经成为了业界的标准之一。 Artemis的主要特点包括: 1. **高性能**:Artemis为消息的生产与消费提供了高度的并行性支持,大大提升了消息处理的效率。 2. **灵活的地址模型**:...
这篇博客"jms之activeMQ 队列和广播模式例子"主要面向初学者,旨在提供ActiveMQ入门级的知识,通过实例解释队列(Queue)和主题(Topic)这两种基本的消息模式。 首先,我们要理解JMS中的队列和主题的区别。队列...
Apache ActiveMQ是业界广泛使用的开源消息中间件,它遵循开放消息中间件协议(Open Message Queue,简称OMQ),提供高效、可靠的消息传递服务。ActiveMQ 5.14.4是该软件的一个稳定版本,适合在多种操作系统上运行,...
在现代分布式系统中,消息中间件(Message Queue, MQ)扮演着至关重要的角色,它们用于在分布式组件之间传输消息,帮助解决网络延迟、组件故障等问题,提高系统的整体健壮性和可扩展性。本文将详细比较Kafka、...
在IT行业中,消息队列(Message Queue)是一种重要的中间件技术,它允许应用程序之间通过异步通信进行数据交换。在本场景中,我们关注的是如何使用C#编程语言结合ActiveMQ来实现发布/订阅模式的消息传送。ActiveMQ是...
在IT行业中,消息队列(Message Queue,MQ)和Openfire是两个重要的技术概念,用于构建高效、可扩展的应用系统。本资源提供了通过MQ获取值并利用Openfire进行消息推送的源码,被誉为“史上最强版”,对于学习和实践...
ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,提供了可靠的消息传递功能。通过模拟ActiveMQ代理服务器,我们可以理解JMS的工作原理,并学习如何利用Java代码创建一个简易的消息中间件。 ...
首先,ActiveMQ是由Apache开发的开源消息代理,它是JMS 1.1规范的实现者。ActiveMQ支持多种协议,包括开放消息传递协议(Openwire)、AMQP、STOMP、MQTT和WebSockets,这使得它能够与多种编程语言和平台无缝集成。在...