`
wwwxxx286
  • 浏览: 50316 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Apache Active MQ 之Topic

    博客分类:
  • Java
阅读更多
Apache Active MQ 之Topic:

Pre-Condition:安装好Apache ActiveMQ并启动服务

消费者:
package com.wx.jms.topic;

import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTopic;

/**
 * @Class name:	Topic_Test.java
 *
 * Short description on the purpose of the program.
 *
 * @author:		wangxiang
 * @modified:	Mar 22, 2011
 *
 */

public class Topic_Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
		Connection conn = factory.createConnection();
		conn.start();
		
		Topic topic = new ActiveMQTopic("mqtopic");
		Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
		
		MessageConsumer consumer1 = session.createConsumer(topic);
		consumer1.setMessageListener(new MessageListener(){
			public void onMessage(Message msg) {
				try {
					System.out.println("consumer1:" + ((TextMessage)msg).getText());
				} catch (JMSException e) {
					e.printStackTrace();
				}
				try {
					Thread.currentThread().sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		});
		
		MessageConsumer consumer2 = session.createConsumer(topic);
		consumer2.setMessageListener(new MessageListener(){
			public void onMessage(Message msg) {
				try {
					System.out.println("consumer2:" + ((TextMessage)msg).getText());
				} catch (JMSException e) {
					e.printStackTrace();
				}
				try {
					Thread.currentThread().sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		});
		
	}

}


生产者:
package com.wx.jms.topic;

import javax.jms.Connection;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.Topic;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTopic;

/**
 * @Class name: TopicProducer_Main.java
 * 
 *        Short description on the purpose of the program.
 * 
 * @author: wangxiang
 * @modified: Mar 22, 2011
 * 
 */

public class TopicProducer_Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(
				"tcp://localhost:61616");
		Connection conn = factory.createConnection();
		conn.start();

		Topic topic = new ActiveMQTopic("mqtopic");
		Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
		MessageProducer producer = session.createProducer(topic);
		for (int i = 1; i < 12; i++) {
			producer.send(session.createTextMessage("msg " + i));
		}
		conn.stop();
	}

}


结果:
consumer1:msg 1
consumer2:msg 1
consumer1:msg 2
consumer2:msg 2
consumer1:msg 3
consumer2:msg 3
consumer1:msg 4
consumer2:msg 4
consumer1:msg 5
consumer2:msg 5
consumer1:msg 6
consumer2:msg 6
consumer1:msg 7
consumer2:msg 7
consumer1:msg 8
consumer2:msg 8
consumer1:msg 9
consumer2:msg 9

0
1
分享到:
评论

相关推荐

    Active MQ in Action

    《Active MQ in Action》是关于Apache ActiveMQ的权威指南,由Manning出版社出版。这本书深入浅出地介绍了ActiveMQ这一开源消息代理系统,是理解、配置、管理和优化ActiveMQ的关键资源。ActiveMQ是Apache软件基金会...

    active MQ maven POM方式

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker API,JMS)标准,提供了可靠的消息传输服务。在Java开发环境中,Maven是常用的项目构建工具,它通过POM...

    active MQ ,消息队列

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker Protocol,即AMQP)和Java消息服务(Java Message Service,JMS)规范。消息队列是分布式系统中的一个重要概念...

    zis.rar_active MQ_activemq_java activeMQ_java 转发

    在这个"zis.rar_active MQ_activemq_java _activeMQ_java 转发"的压缩包中,我们可以推测其主要内容可能涉及如何使用ActiveMQ在Java环境中实现消息的转发功能。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ...

    active-mq开发手册

    ActiveMQ-CPP是Apache ActiveMQ的C++接口,允许开发者使用C++语言与ActiveMQ消息队列服务器进行通信。此外,Winkeemq-cpp是基于ActiveMQ-CPP构建的API库,它进一步简化了编程,通过处理初始化、清理等常规任务,减轻...

    用C#实现的ActiveMQ发布/订阅消息传送

    ActiveMQ是Apache软件基金会开发的一个开源消息传递平台,支持多种协议,包括NMS(.NET Messaging Service),它是专门为.NET平台设计的ActiveMQ接口。 首先,我们需要了解发布/订阅模式。在这种模式下,生产者...

    C#实现同Active MQ通讯的方法

    - 根据消息类型(如点对点Queue或发布订阅Topic),创建消息目标(Destination)。 - 生产者通过会话向目标发送消息,消费者从目标接收消息。 ActiveMQ还支持消息过滤机制,允许生产者为消息设置属性(Properties)...

    Artemis 高性能的MQ

    在高性能的消息系统领域,Artemis已经成为了业界的标准之一。 Artemis的主要特点包括: 1. **高性能**:Artemis为消息的生产与消费提供了高度的并行性支持,大大提升了消息处理的效率。 2. **灵活的地址模型**:...

    jms之activeMQ 队列和广播模式例子(主要给初学者提供入门知识)

    这篇博客"jms之activeMQ 队列和广播模式例子"主要面向初学者,旨在提供ActiveMQ入门级的知识,通过实例解释队列(Queue)和主题(Topic)这两种基本的消息模式。 首先,我们要理解JMS中的队列和主题的区别。队列...

    JMS模拟ActiveMQ代理服务器并实现消息收发

    ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,提供了可靠的消息传递功能。通过模拟ActiveMQ代理服务器,我们可以理解JMS的工作原理,并学习如何利用Java代码创建一个简易的消息中间件。 ...

    activeMQ集成SpringMVC,三种方式监听

    在Spring MVC项目中,我们可以通过XML配置文件来定义ActiveMQ的连接工厂、目的地(如Queue或Topic)以及消息监听器。首先,需要引入ActiveMQ的相关依赖,并在`spring.xml`或`applicationContext.xml`中配置`...

    spring整合activemq

    ActiveMQ则是Apache软件基金会开发的一个开源消息中间件,它实现了多种消息协议,如JMS(Java Message Service)、AMQP(Advanced Message Queuing Protocol)等。ActiveMQ的核心功能是提供可靠的消息传递,支持点对...

    qt activemq mqtt 动态库

    而ActiveMQ是Apache软件基金会的一款开源消息中间件,它支持多种消息协议,包括MQTT。 Qt是一个跨平台的应用程序开发框架,广泛应用于桌面和移动平台。它提供了丰富的API,使得开发者可以使用C++来创建图形用户界面...

    ActiveMQ / RabbitMQ 示例

    首先,ActiveMQ是由Apache开发的开源消息代理,它是JMS 1.1规范的实现者。ActiveMQ支持多种协议,包括开放消息传递协议(Openwire)、AMQP、STOMP、MQTT和WebSockets,这使得它能够与多种编程语言和平台无缝集成。在...

    ActiveMQ安装包和教程

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它是Java Message Service (JMS) 的实现,主要用于处理应用程序之间的异步通信。在Java EE环境中,ActiveMQ扮演着关键角色,为分布式系统提供高效率、可靠的...

    apache-activemq-5.4.2-bin.tar.gz

    4. **主题(Topic)与队列(Queue)**: 提供发布/订阅模型(主题)和点对点模型(队列),满足不同场景下的消息传递需求。 5. **管理工具**: 包含一个基于Web的管理控制台,用户可以通过浏览器轻松配置、监控和管理...

    activeMQ收发工具.rar

    ActiveMQ是中国最流行的开源消息中间件之一,由Apache软件基金会开发。它基于Java Message Service (JMS) 规范,提供了可靠的消息传递功能,适用于分布式系统中的应用间通信。本压缩包“activeMQ收发工具.rar”包含...

    mqajax项目

    ActiveMQ是Apache软件基金会开发的一个开源消息中间件,它遵循JMS(Java Message Service)规范,提供高效、可靠的跨语言消息传递能力。Ajax,即Asynchronous JavaScript and XML,是一种创建动态网页的技术,通过在...

    active_mq

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于Java Message Service (JMS) API,为分布式系统提供高效、可靠的消息传递服务。在Java开发领域,ActiveMQ因其易用性、灵活性和强大的功能而备受青睐。...

Global site tag (gtag.js) - Google Analytics