本文主要以一个简单的示例展示ActiveMQ收发消息:
一、ActiveMQ说明
二、代码示例
一、ActiveMQ说明
1、当前ActiveMQ的最新版本为: ActiveMQ 5.15.3 Release ====》点击:官网下载ActiveMQ地址
2、下载好之后解压,然后启动ActiveMQ,启动时要根据系统的位数来选择
二、代码示例
导入依赖jar包
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>
5.15
.
3
</version>
</dependency>
(1)生产者代码
package com.chinasoft.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; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; /** * ActiveMQ消息的生产者 生产者发送消息到消息中间件,实现JMS规范接口的消息中间件称为JMS Provider * * @author Freedom * */ public class Sender { public static void main(String[] args) throws JMSException { sender(); } public static void sender() throws JMSException { // 1.建立ConnectionFactory ConnectionFactory f = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616"); // 2.通过ConnectionFactory工厂建立Connection的连接,并调用start开启连接 Connection c = f.createConnection(); c.start(); // 3.通过Connection对象创建session会话,用于接收消息,参数1:是否开启事务,参数2:设置签收方式 Session session = c.createSession(false, Session.AUTO_ACKNOWLEDGE);// 自动签收 // 4.通过session创建Destination对象,指的是一个客户端用来指定生产消息的目标和消费消息的来源对象 // 在PTP的模式中Destination被称为Queue队列;在pub/sub模式下Destination被称为Topic主题 Destination d = session.createQueue("firstMQ"); // 5.通过session创建消息的发送者和接收者(生产者和消费者) MessageProducer p = session.createProducer(null);// 在生产者发送消息的同时指定Destination // 6.MessageProducer设置持久化特性和非持久化特性 // 7.JMS规范的TextMessage形式数据通过Session来创建,并用MessageProducer发送消息,客户端receive方法进行数据的接受 // 使用完成一定要关闭Connection连接 TextMessage msg = null; for (int i = 0; i < 100; i++) { msg = session.createTextMessage(); msg.setText("ActiveMQ作为消息中间件:" + i); System.out.println("生产者发送的消息==" + msg.getText()); try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 发送消息 p.send(d, msg); } // 关闭连接 c.close(); } }
注意:
①为了保证消息中间件中数据的可靠性,数据默认保存到kahadb中
②通过管控台可以看到生产者数据的变化
ActiveMQ内置jetty容器,访问管控台(http://localhost:8161/admin)
(2)消费者代码示例
package com.chinasoft.activemq; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; public class Consumer { public static void main(String[] args) throws JMSException { receiver(); } public static void receiver() throws JMSException { // 1.建立ConnectionFactory ConnectionFactory f = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER, ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616"); // 2.通过ConnectionFactory工厂建立Connection的连接,并调用start开启连接 Connection c = f.createConnection(); c.start(); // 3.通过Connection对象创建session会话,用于接收消息,参数1:是否开启事务,参数2:设置签收方式 Session session = c.createSession(false, Session.AUTO_ACKNOWLEDGE);// 自动签收 // 4.通过session创建Destination对象,指的是一个客户端用来指定生产消息的目标和消费消息的来源对象 // 在PTP的模式中Destination被称为Queue队列;在pub/sub模式下Destination被称为Topic主题 Destination d = session.createQueue("firstMQ"); // 5.通过session创建消息的发送者和接收者(生产者和消费者) MessageConsumer consumer = session.createConsumer(d); // 消费者用于接受MQ的数据 // 7.JMS规范的TextMessage形式数据通过Session来创建,并用MessageProducer发送消息,客户端receive方法进行数据的接受 TextMessage msg = null; while (true) { // 阻塞等待接受MQ的数据 msg = (TextMessage) consumer.receive(); System.out.println("消费者接受消息===" + msg.getText()); } } }
控制台显示结果:
管控台显示结果:
相关推荐
activemq 通过ajax发送接收消息简单例子
activeMQ的发送消息后接收者返回信息
本代码关于activemq-cpp的核心代码参考的chenxun2009的博客园,其他部分包括:从配置文件中读取消息通道,过滤条件等信息。
springboot集成activemq实现消息接收demo
SpringBoot+ActiveMq+MQTT实现消息的发送和接收 后台消费者、生产者、消息发送接口、发送消息业务类等相关配置
springboot整合ActiveMQ源码,适合范围消息队列入门小伙伴,对ActiveMQ消息队列不太了解,不知道如何发送消息,接收消息可以围观。
activeMQ的测试工具,用于发送和接收activeMQ消息,jar包形式的,安装完jdk之后用java -jar xxx.jar命令运行
实现了ActiveMQ的初步封装,比较适合新手入门学习,简单明了
Android基于MQTT协议利用ActiveMQ发送消息给Android端接收,属于长连接那种,类似Socket通信
这是我精力整理的ActiveMQ发送和接收protobuf协议消息的实例。 也对ActiveMQ进行了简化封装,也配置了自动重连机制,亲测可用!
今天小编就为大家分享一篇python 发送和接收ActiveMQ消息的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
5.ActiveMQ:使用Activemq发送接收消息,通过消息队列实现商品同步。 6.FreeMarker:FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道...
使用ActiveMQ由C++控制台程序发送消息,C#控制台程序接收消息。
这个demo完整实现了activeMQ发送消息,接收消息,以及MQ详解文档
RetailSystem包含消息生产者Producer,BankSystem包含消息接收者Consumer和Java调用C++的中间类DLL,dll3为Java方法在C++下的实现.
主要介绍了php 使用ActiveMQ发送消息,与处理消息操作,结合实例形式分析了php使用ActiveMQ实现消息的发送与接收处理相关操作技巧,需要的朋友可以参考下
activeMQ JMS 消息推送 Spring整合activeMQ 消息发送者 接收者