ActiveMQ实战之 Queue点对点消息
运行:先运行消费者在开启消息生产者即可接收到消息
消息生产者
/**
* @摘要 测试发送单条数据的类
*/
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();
}
}
ActiveMQ实战之 Queue点对点消息的更多相关文章
- 基于Tomcat + JNDI + ActiveMQ实现JMS的点对点消息传送
前言 写了一个简单的JMS例子,之所以使用JNDI 是出于通用性考虑,该例子使用JMS规范提供的通用接口,没有使用具体JMS提供者的接口,这样可以保证我们编写的程序适用于任何一种JMS实现(Activ ...
- Apache ActiveMQ实战(1)-基本安装配置与消息类型
ActiveMQ简介 ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信.ActiveMQ使用Apache ...
- Centos7环境下消息队列之ActiveMQ实战
Activemq介绍 对于消息的传递有两种类型: 一种是点对点的,即一个生产者和一个消费者一一对应: 另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收. JMS定义了 ...
- 消息中间件-activemq实战之消息持久化(六)
对于activemq消息的持久化我们在第二节的时候就简单介绍过,今天我们详细的来分析一下activemq的持久化过程以及持久化插件.在生产环境中为确保消息的可靠性,我们肯定的面临持久化消息的问题,今天 ...
- ActiveMQ 快速入门教程系列 第一章 点对点消息实现
ActiveMQ 开发包下载及运行环境搭建 主页:http://activemq.apache.org/目前最新版本:5.11.1开发包及源码下载地址:http://activemq.apache.o ...
- (二)ActiveMQ之点对点消息实现
一.点对点消息实现概念 在点对点或队列模型下,一个生产者向一个特定的队列发布消息,一个消费者从该队列中读取消息.这里,生产者知道消费者的队列,并直接将消息发送到消费者的队列.这种模式被概括为:只有一个 ...
- ActiveMQ的作用总结(应用场景及优势)以及springboot+activeMq 实战
业务场景说明: 消息队列在大型电子商务类网站,如京东.淘宝.去哪儿等网站有着深入的应用, 队列的主要作用是消除高并发访问高峰,加快网站的响应速度. 在不使用消息队列的情况下,用户的请求数据直接写入 ...
- spring +ActiveMQ 实战 topic selecter指定接收
spring +ActiveMQ 实战 topic selecter指定接收 queue:点对点模式,一个消息只能由一个消费者接受 topic:一对多,发布/订阅模式,需要消费者都在线(可能会导致信息 ...
- activemq 实战 一
This chapter covers Introduction to the use case for each of the book examples Use of Maven for ...
随机推荐
- ifconfig 运行command not found
vi /home/lx/.bash_profile中添加 PATH=$PATH:$HOME/bin:/sbin:/bin export PATH linux查看服务自启动 chkconfig - ...
- 更改AVD默认路径
默认情况下,安卓模拟器镜像文件会放到%userprofile%\.android下,例如当前Win7登录用户为administrator 则%userprofile%为 c:\users\admini ...
- Vim完全教程
一.简介 世界上只有三种编辑器,EMACS.VIM和其它. 我们所处的时代是非常幸运的,有越来越多的编辑器,相对于古老的VIM和EMACS,它们被称为现代编辑器.我们来看看这两个古董有多大年纪了: ...
- 8.Mysql数据类型选择
8.选择合适的数据类型8.1 CHAR与VARCHAR CHAR固定长度的字符类型,char(n) 当输入长度不足n时将用空格补齐,char(n)占用n个字节,CHAR类型输出时会截断尾部的空格,即使 ...
- springboot 项目添加jaeger调用链监控
1.添加maven依赖<dependency> <groupId>io.opentracing.contrib</groupId> <artifactId&g ...
- andorid 计算器
avtivity_main.xml <?xml version="1.0" encoding="utf-8"?> <GridLayout xm ...
- 理解String拼接,+运算符重载的实际效果
引申:一个常见的String的面试题 public static void main(String[] args) { // TODO Auto-generated method stub Strin ...
- hdu 1735(贪心) 统计字数
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735 对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实 这是道贪心的题目,要有贪心的意 ...
- linux内核中hlist_head和hlist_node结构解析
hlist_head和hlist_node用于散列表,分表表示列表头(数组中的一项)和列表头所在双向链表中的某项,两者结构如下: 1 2 3 struct hlist_head { struct hl ...
- ubuntu12.04下安装Apache+PHP+MySQL
一.Apache1.安装apache2: sudo apt-get install apache2 2.重启apache2: sudo /etc/init.d/apache2 restart 3.在浏 ...