activeMQ点对点

摘要: ActiveMQ 点对点消息 Point-to-Point 是一对一

创建消息生产者

/**
 * 点对点消息生产者
 * 
 * @author Edward
 * 
 */
public class P2pProducer {

	public static void main(String[] args) {
		ConnectionFactory connectionFactory = null;
		Connection conn = null;
		Session session = null;
		Queue queue = null;
		MessageProducer messageProducer = null;
		try {
			// 创建工厂
			// ActiveMQConnection.DEFAULT_USER 默认null
			// ActiveMQConnection.DEFAULT_PASSWORD 默认null
			// ActiveMQConnection.DEFAULT_BROKER_URL
			// 默认failover://tcp://localhost:61616
			connectionFactory = new ActiveMQConnectionFactory(
					ActiveMQConnection.DEFAULT_USER,
					ActiveMQConnection.DEFAULT_PASSWORD,
					ActiveMQConnection.DEFAULT_BROKER_URL);
			// 创建连接
			conn = connectionFactory.createConnection();
			// 启动连接
			conn.start();
			// 创建会话 createSession(true, Session.AUTO_ACKNOWLEDGE); true 表示开启事务
			// Session.AUTO_ACKNOWLEDGE 消息模式
			session = conn.createSession(true, Session.AUTO_ACKNOWLEDGE);
			// 创建队列
			queue = session.createQueue("P2pQueue");
			// 创建消息生产者
			messageProducer = session.createProducer(queue);
			// 创建消息
			TextMessage message = session.createTextMessage();
			message.setText("我是P2pProducer生产的消息");
			// 发送消息
			messageProducer.send(message);
			// 提交事务
			session.commit();
			System.out.println("OK");
		} catch (JMSException e) {
			e.printStackTrace();
		} finally {
			try {
				session.close();
				conn.close();
			} catch (JMSException e) {
				e.printStackTrace();
			}
		}

	}

}

运行成功,查看控制台:

创建消息消费者

/**
 * 点对点消息消费者
 * 
 * @author Edward
 * 
 */
public class P2pConsumer {

	public static void main(String[] args) {
		ConnectionFactory connectionFactory = null;
		Connection conn = null;
		Session session = null;
		Queue queue = null;
		MessageConsumer messageConsumer = null;
		try {
			// 创建工厂
			// ActiveMQConnection.DEFAULT_USER 默认null
			// ActiveMQConnection.DEFAULT_PASSWORD 默认null
			// ActiveMQConnection.DEFAULT_BROKER_URL
			// 默认failover://tcp://localhost:61616
			connectionFactory = new ActiveMQConnectionFactory(
					ActiveMQConnection.DEFAULT_USER,
					ActiveMQConnection.DEFAULT_PASSWORD,
					ActiveMQConnection.DEFAULT_BROKER_URL);
			// 创建连接
			conn = connectionFactory.createConnection();
			// 启动连接
			conn.start();
			// 创建会话 createSession(true, Session.AUTO_ACKNOWLEDGE); false 表示不开启事务
			// Session.AUTO_ACKNOWLEDGE 消息模式
			session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
			// 创建队列
			queue = session.createQueue("P2pQueue");
			// 创建消息消费者
			messageConsumer = session.createConsumer(queue);
			// 注册消费消息监听
			messageConsumer.setMessageListener(new MessageListener() {

				@Override
				public void onMessage(Message message) {
					try {
						System.out.println("我收到的消息:"
								+ ((TextMessage) message).getText());
					} catch (JMSException e) {
						e.printStackTrace();
					}
				}
			});
		} catch (JMSException e) {
			e.printStackTrace();
		}
	}
}

执行结果

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
我收到的消息:我是P2pProducer生产的消息
时间: 2024-10-11 03:25:06

activeMQ点对点的相关文章

JMS消息队列ActiveMQ(点对点模式)

生产者(producer)->消息队列(message queue) package com.java1234.activemq; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.Session

springBoot配置activeMq点对点模式消费信息以及独占模式消费如何设置

1.在pom文件中引入对应jar包 <!--activeMQ start--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> <dependency> <groupId>org.springfram

ActiveMQ简单简绍(“点对点通讯”和 “发布订阅模式”)

ActiveMQ简单简绍 MQ简介: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求.其中较为成熟的MQ产品有IBMWEBSPHERE MQ. MQ特点: M

JMS-activeMq点对点模式

上一篇对JMS进行介绍了一下,接下来总结一下activemq点对点模式以及订阅发布模式. (1)下载:首先到官网http://activemq.apache.org下载activemq (2)运行:解压缩apache-activemq-5.14.0-bin.zip,然后双击apache-activemq-5.14.0-bin\apache-activemq-5.14.0\bin\win64\activemq.bat运行ActiveMQ程序. 解压后,如下图: bin:其中包含MQ的启动脚本 co

基于JMS的消息传送

简单的介绍下基于JMS的消息传送 Java消息队列JMS整体设计结构 基本要素:生产者(producer),消费者(consumere),消息服务(broker) 交互模型: JMS两种消息传送模式 点对点(Point-to-Point):专门用于使用队列Queue传送消息: 发布/订阅(Publish/Subscribe):专门用于使用主题Topic传送消息 两种传送方式比较 基于队列Queue的点对点消息只能被一个消费者消费,如多个消费者都注册到同一个消息队列上,当生产者发送一条消息后,而只

Activemq mqtt 点对点聊天实现(转载)

我这想到一个点对点聊天的方法,不用没割人都建立一个topic了,思路还是自定义一个分发策略,具体如下: 1.  建立一个topic,所有人都用匹配订阅的方式订阅以该topic为头的topic,例如:所有人都订阅PTP/#. 2.  例如A向B发送聊天信息,B的clientId是bbb,A只需要向PTP/bbb 推送聊天信息,我写的自定义策略会针对所有PTP开头的topic做自定义分发<policyEntry topic="PTP.>">,将topic里的clientI

activeMQ学习(2)---------点对点、发布订阅的消息代码实现

以下是个人在学习activemq时从网上找到的资料, 总结留给自己以后复习 点对点的实现 2 @Test public void sendMessage(){ 3 try { 4 // 创建一个连接工厂 5 String url = "tcp://localhost:61616"; 6 ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); 7 // 设置用户名和密码,这个用户名

Activemq mqtt 点对点聊天实现

我这想到一个点对点聊天的方法,不用没割人都建立一个topic了,思路还是自定义一个分发策略,具体如下: 1.  建立一个topic,所有人都用匹配订阅的方式订阅以该topic为头的topic,例如:所有人都订阅PTP/#. 2.  例如A向B发送聊天信息,B的clientId是bbb,A只需要向PTP/bbb 推送聊天信息,我写的自定义策略会针对所有PTP开头的topic做自定义分发<policyEntry topic="PTP.>">,将topic里的clientI

ActiveMQ的(点对点&amp;发布/订阅通信模式)和(持久化方式)

ActiveMQ的持久化 消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和ReliableMessaging结合起来应该是很好的保证了消息的可靠传送. 消息持久性的原理很简单,就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件.内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试.消