博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActiveMQ实战之 Queue点对点消息
阅读量:5091 次
发布时间:2019-06-13

本文共 2812 字,大约阅读时间需要 9 分钟。

前言:ActiveMQ消息模式点对点编码
运行:先运行消费者在开启消息生产者即可接收到消息
消息生产者
/** * @摘要 测试发送单条数据的类 */public class ZMQOneSendTest{	public static void main(String[] args) throws Exception {		//1 .开始建立连接时间		Long nStartTime = System.currentTimeMillis();				// 2.建立连接工厂		org.apache.activemq.ActiveMQConnectionFactory nFactory = new org.apache.activemq.ActiveMQConnectionFactory("tcp://localhost:61616");		// 3.用工厂建立Connection连接		javax.jms.Connection nConnection = nFactory.createConnection();		// 4.创建会话Session,不启动事务,签收模式为自动确认模式		javax.jms.Session nSession = nConnection.createSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE);		// 5.创建队列		javax.jms.Destination nDestination = nSession.createQueue("123");		// 6.创建生产者		javax.jms.MessageProducer nProducer = nSession.createProducer(nDestination);		// 7.设置持久化		nProducer.setDeliveryMode(javax.jms.DeliveryMode.PERSISTENT);		// 8.启动连接		nConnection.start();		// 9.查询开始时间		Long nStartSelectTime = System.currentTimeMillis();				// 10.查询结束时间		Long nEndSelectTime = System.currentTimeMillis();				// 11.创建消息		javax.jms.TextMessage nMessage = nSession.createTextMessage();		nMessage.setText("我是发送的数据");				// 12.发送开始时间		Long nStartSendTime = System.currentTimeMillis();				// 13.生产者发布消息		nProducer.send(nMessage);				// 14.消息结束时间	    Long nEndSendTime = System.currentTimeMillis();				// 15.打印消息	    System.out.println("已发送消息 "+nMessage);	    	    // 16.关闭发布者、会话、连接	    nProducer.close();	    nSession.close();	    nConnection.close();	    // 17.计算时间		System.out.println("查询消息时间 "+(nEndSelectTime-nStartSelectTime));		System.out.println("发送消息时间"+(nEndSendTime-nStartSendTime));		System.out.println("总时间"+(nEndSendTime-nStartTime));	}}
消息消费者
public class ZMQReadTest {	public static void main(String[] args) throws javax.jms.JMSException {		// 1.建立连接工厂		org.apache.activemq.ActiveMQConnectionFactory nFactory = new org.apache.activemq.ActiveMQConnectionFactory("tcp://localhost:61616");		// 2.用工厂建立Connection连接		javax.jms.Connection nTopicConnection = nFactory.createConnection();		// 3.创建会话Session,不启动事务,签收模式为自动确认模式		javax.jms.Session nSession = nTopicConnection.createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);		// 4.创建队列		javax.jms.Destination nDestination = nSession.createQueue("123");		// 5.创建消费者		javax.jms.MessageConsumer nConsumer = nSession.createConsumer(nDestination);		// 6.为消费者添加消息监听器,onMessage方法接收消息		nConsumer.setMessageListener(new javax.jms.MessageListener() {			public void onMessage(javax.jms.Message nMessage) {				try {					if (nMessage instanceof javax.jms.TextMessage) {						String nTextMessage = ((javax.jms.TextMessage) nMessage).getText();						System.out.println("收到的消息:" + nTextMessage);					}				} catch (javax.jms.JMSException e) {					e.printStackTrace();				}			}		});		// 7.开启连接		nTopicConnection.start();	}}

转载于:https://www.cnblogs.com/baryon/p/9611452.html

你可能感兴趣的文章
解决 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值...
查看>>
iOS Keychain,SSKeychain,使用 理解 原理
查看>>
java中的文件上传下载
查看>>
nginx配置参数详解
查看>>
hibernate--级联添加
查看>>
学习jquery应该了解的几篇文章
查看>>
storyboard出口回退问题
查看>>
[ 原创 ] Java基础1--Java中super和this的用法和区别
查看>>
软件工程——构建之法 阅读笔记
查看>>
常用 Maven 配置
查看>>
使用ifstream和getline读取文件内容[c++]
查看>>
任意维度过虑,取结果集中最新一条XXX ROW_NUMBER() OVER()
查看>>
高并发,高负载网站架构知识汇总
查看>>
php.ini 中文版
查看>>
其他信息: 具有固定名称“Npgsql”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载。有关详细信息,请参阅内部异常...
查看>>
iOS Animation 学习(1)
查看>>
[ Eclipse ] [ Problem ] Eclipse 無法開啟問題
查看>>
Windows 8与Windows Phone SDK暂时不兼容
查看>>
使用 Node.js 搭建一个 API 网关
查看>>
Python Faker的使用 及 常用函数的查询
查看>>