ActiveMQ demo
Maven 配置文件
- <dependency>
- <groupId>org.apache.activemq</groupId>
- <artifactId>activemq-all</artifactId>
- <version>5.9.1</version>
- </dependency>
provider 生产者代码
- import static commons.Constants.*;
- import javax.jms.Connection;
- import javax.jms.ConnectionFactory;
- import javax.jms.JMSException;
- import javax.jms.Message;
- import javax.jms.MessageProducer;
- import javax.jms.Queue;
- import javax.jms.Session;
- import org.apache.activemq.ActiveMQConnectionFactory;
- public class Provider {
- public static void main(String[] args) {
- ConnectionFactory cf = new ActiveMQConnectionFactory(URL); //创建工厂链接对象
- Connection connection = null;
- Session session = null;
- Queue queue = null;
- MessageProducer producer = null;
- try {
- connection = cf.createConnection(); //使用工厂创建链接
- connection.start(); //开启连接
- session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); //使用连接对象创建会话
- queue = session.createQueue(QUEUE_ONE); //使用会话创建目标对象
- producer = session.createProducer(queue); // 使用会话、目标对象创建生产者对象
- Message message = session.createTextMessage("hello ,i'm not good"); //使用会话创建消息对象
- producer.send(message);//发送消息
- System.out.println("send:"+message.toString());
- } catch (JMSException e) {
- e.printStackTrace();
- }finally {
- if(producer != null) {
- try {
- producer.close();
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- if(session != null) {
- try {
- session.close();
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- if(connection != null) {
- try {
- connection.close();
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
Consumer 消费者
- import static commons.Constants.*;
- import javax.jms.Connection;
- import javax.jms.ConnectionFactory;
- import javax.jms.JMSException;
- import javax.jms.Message;
- import javax.jms.MessageConsumer;
- import javax.jms.MessageListener;
- import javax.jms.Queue;
- import javax.jms.Session;
- import javax.jms.TextMessage;
- import org.apache.activemq.ActiveMQConnectionFactory;
- public class Consumer {
- public static void main(String[] args) {
- ConnectionFactory cf = new ActiveMQConnectionFactory(URL);
- Connection connection = null;
- Session session = null;
- MessageConsumer consumer = null;
- try {
- connection = cf.createConnection();
- connection.start();
- session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- Queue queue = session.createQueue(QUEUE_ONE);
- consumer = session.createConsumer(queue);
- //向consumer对象中设置一个messageListener对象,用来接收消息
- consumer.setMessageListener(new MessageListener() {
- public void onMessage(Message message) {
- if(message instanceof TextMessage) { //当前测试,仅测试Text类型的消息
- TextMessage text = (TextMessage)message;
- try {
- System.out.println(text.getText());
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- }
- });
- System.out.println("consumer : "+System.currentTimeMillis());
- System.in.read();
- }catch(Exception e) {
- e.printStackTrace();
- }finally {
- if(consumer != null) {
- try {
- consumer.close();
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- if(session != null) {
- try {
- session.close();
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- if(connection != null) {
- try {
- connection.close();
- } catch (JMSException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
Constants 常量类
- package commons;
- public interface Constants {
- String URL = "tcp://192.168.49.128:61616";
- String QUEUE_ONE = "CQC_ONE";
- }
ActiveMQ demo的更多相关文章
- activemq demo指南
queue与topic的技术特点对比 topic queue 概要 Publish Subscribe messaging 发布订阅消息 Point-to-Point 点对点 有无状态 topic ...
- 消息中间件系列一:入门、JMS规范、ActiveMQ使用
一.入门 1. 消息中间件的定义 没有标准定义,一般认为,采用消息传送机制/消息队列 的中间件技术,进行数据交流,用在分布式系统的集成 2. 为什么要用消息中间件 解决分布式系统之间消息的传递.电商场 ...
- ActiveMQ 集群配置 高可用
自从activemq5.9.0开始,activemq的集群实现方式取消了传统的Pure Master Slave方式,增加了基于zookeeper+leveldb的实现方式,其他两种方式:目录共享和数 ...
- activemq 实战 四 传输连接器-Transport connectors 4.2
In order to exchange messages, producers and consumers (clients) need to connect to the broker. This ...
- 消息队列之 ActiveMQ(山东数漫江湖)
简介 ActiveMQ 特点 ActiveMQ 是由 Apache 出品的一款开源消息中间件,旨在为应用程序提供高效.可扩展.稳定.安全的企业级消息通信. 它的设计目标是提供标准的.面向消息的.多语言 ...
- Spring和ActiveMQ集成实现队列消息以及PUB/SUB模型
前言:本文是基于Spring和ActiveMQ的一个示例文章,包括了Point-To-Point的异步队列消息和PUB/SUB(发布/订阅)模型,只是做了比较简单的实现,无任何业务方面的东西,作为一个 ...
- java之消息队列ActiveMQ实践
原创论文:https://www.cnblogs.com/goujh/p/8510239.html 消息队列的应用场景: 消息队列应用场景 异步处理,应用解耦,流量削锋和消息通讯四个场景 异步处理: ...
- JMS学习七(ActiveMQ之Topic的持久订阅)
非持久化订阅持续到它们订阅对象的生命周期.这意味着,客户端只能在订阅者活动时看到相关主题发布的消息.如果订阅者不活动,它会错过相关主题的消息.如果花费较大的开销,订阅者可以被定义为durable(持久 ...
- 消息队列之 ActiveMQ
简介 ActiveMQ 特点 ActiveMQ 是由 Apache 出品的一款开源消息中间件,旨在为应用程序提供高效.可扩展.稳定.安全的企业级消息通信. 它的设计目标是提供标准的.面向消息的.多语言 ...
随机推荐
- 【转】C#中Serializable序列化实例详解
这篇文章主要介绍了C#中Serializable序列化,以实例形式详细讲述了系列化的技术及各种序列化方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了C#中Serializable序列化.分 ...
- ArrayBlockingQueue源码解析(1)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 注意:在阅读本文之前或在阅读的过程中,需要用到ReentrantLock,内容见<第五章 Reentr ...
- C语言通过匿名管道实现反弹式CMDShell
#pragma comment(lib,"ws2_32.lib") #ifdef _MSC_VER #pragma comment( linker, "/subsyste ...
- Git文件状态
在Git中,文件状态是一个非常重要的概念,不同的状态对应不同的操作.因此,要想熟练掌握Git的用法,需要了解Git的几种文件状态. Git库所在的文件夹中的文件大致有4种状态: Untracked:未 ...
- jquery中的ajax请求,阻塞ui线程的解决方案(自己总结的demo)
/*****************************************************/ function getAjaxData(url,data){ showLoading( ...
- Vue2.5开发去哪儿网App 搜索功能完成
效果展示: Search.vue: <div class="search-content" ref="search" v-show="keywo ...
- vue仿微信网页版|vue+web端聊天室|仿微信客户端vue版
一.项目介绍 基于Vue2.5.6+Vuex+vue-cli+vue-router+vue-gemini-scrollbar+swiper+elementUI等技术混合架构开发的仿微信web端聊天室— ...
- C#简单操作MongoDB
一 安装MongoDB 官网按需下载, 安装, 一步到位. 二 VS创建新项目 创建一个.netcore console项目, 然后nuget安装驱动MongoDB.Driver 三 建立连接 在Pr ...
- docker学习实践之路[第一站]环境安装
安装虚拟机(VMware Workstation) 这步就不多说了,下载完软件之后一路点击下一步,直至安装完成. 安装Ubuntu 16.4 server 下载ubuntu 16.4,并安装在虚拟机中 ...
- (转)9 db2trc案例2(1,2)
原文:http://book.51cto.com/art/200906/130068.htm 9.3.3 db2trc案例2(1) 在AIX操作系统上,系统原先运行良好,而后用户从DB2 V8 FP ...