前言: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();
}
}
分享到:
相关推荐
activemq实战
activemq queue模式,事务、应答、转发模式、MessageConsumer的receive阻塞方法的测试
activemq实战
ActiveMQ实战(英文版) ActiveMQ实战(英文版) ActiveMQ实战(英文版)
ActiveMQ 实战。本手册介绍了JMS以及ActiveMQ的常用操作以及配置。可以作为ActiveMQ应用开发人员的参考手册。
简单的activemq点对点的同步消息模型
ActiveMQ-Queues点对点消息-Receive+Listener方式:参考博文:http://blog.csdn.net/ABAP_Brave/article/details/53443725
ActiveMQ集群实战教程
含如下内容:JMS API;Apache-activeMQ;ActiveMQ实战pdf
百度spring整合activemq 发现几乎都只是在xml文件配置固定的消息队列而且太麻烦。并没有根据需求进行动态生成主题和队列。本文档参考了纯粹的activemq java代码和百度上的demo,很简洁的实现了动态消息队列的生成和...
这个demo完整实现了activeMQ发送消息,接收消息,以及MQ详解文档
Apache ActiveMQ Queue Topic 详解 教程 加入代码解释说明
使用ActiveMQ实现了JMS的点对点的消息模型,将发送者和接受者分别放在了两个不同的项目中。
ActiveMq实战性视频
springboot2整合activemq的demo内含queue消息和topic消息,需要使用者修改application.yml的连接地址信息就可以了,端口号是默认的可以不用修改
ActiveMQ消息中间件的点对点模式point to point 消息队列 * 消息消费者从queue中取出并且消费消息 * 消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息 * queue中支持存在多个消费...
该demo在本地启动activemq后放在tomcat中可直接运行,不需要修改配置,连接远程的activemq需要手动修改applicationContext.xml中的activemq连接地址,jdk1.8
ACTIVEMQ实战部分翻译,只翻译了第一章到第四章的第三节
ActiveMQ初学时写的小demo,可以直接导入eclipse运行,压缩包内包含window版的ActiveMQ(内含有ActiveMQ完整包activemq-all-5.12.1.jar)