2019独角兽企业重金招聘Python工程师标准>>>

1. ActiveMQ简述
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现。
下载地址:http://activemq.apache.org/

2. 运行ActiveMQ
下载好压缩包后,解压,直接运行bin/win64(或32,据系统而定)下的activemq.bat即可,程序开启后,可通过浏览器访问http://localhost:8161/admin进入管理界面。如需帐号密码,请输入admin和admin。

3. 创建项目和测试
主要有生产者(对应Sender)和消费者(对应Receiver),然后使用多线程进行测试。其中的消息队列对通过生产者:destination = session.createQueue(“TestFirst”)
自动在ActiveMQ中创建。
下面是详细的代码(创建工程后请将下载的ActiveMQ中lib文件夹里面的jar包添加进去):

Receiver.java

public class Receiver {public void listen() {// ConnectionFactory :连接工厂,JMS 用它创建连接ConnectionFactory connectionFactory;// Connection :JMS 客户端到JMS Provider 的连接Connection connection = null;// Session: 一个发送或接收消息的线程Session session;// Destination :消息的目的地;消息发送给谁.Destination destination;// 消费者,消息接收者MessageConsumer consumer;connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");try {// 构造从工厂得到连接对象connection = connectionFactory.createConnection();// 启动connection.start();// 获取操作连接session = connection.createSession(Boolean.FALSE,Session.AUTO_ACKNOWLEDGE);// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置destination = session.createQueue("TestFirst");consumer = session.createConsumer(destination);while (true) {Thread.sleep(20);//设置接收者接收消息的时间,为了便于测试,这里谁定为100sTextMessage message = (TextMessage) consumer.receive(100000);if (null != message) {System.err.println("收到消息:" + message.getText());} else {break;}}} catch (Exception e) {e.printStackTrace();} finally {try {if (null != connection)connection.close();} catch (Throwable ignore) {}}}
}

Sender.java

public class Sender {private static final int SEND_NUMBER = 5;private int userId;public Sender(int userId) {this.userId = userId;}public void send() {// ConnectionFactory :连接工厂,JMS 用它创建连接ConnectionFactory connectionFactory;// Connection :JMS 客户端到JMS Provider 的连接Connection connection = null;// Session: 一个发送或接收消息的线程Session session;// Destination :消息的目的地;消息发送给谁.Destination destination;// MessageProducer:消息发送者MessageProducer producer;// TextMessage message;// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jarconnectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,ActiveMQConnection.DEFAULT_PASSWORD,"tcp://localhost:61616");try {// 构造从工厂得到连接对象connection = connectionFactory.createConnection();// 启动connection.start();// 获取操作连接session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置destination = session.createQueue("TestFirst");// 得到消息生成者【发送者】producer = session.createProducer(destination);// 设置不持久化,此处学习,实际根据项目决定producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);// 构造消息,此处写死,项目就是参数,或者方法获取sendMessage(session, producer);session.commit();} catch (Exception e) {e.printStackTrace();} finally {try {if (null != connection)connection.close();} catch (Throwable ignore) {}}}public void sendMessage(Session session, MessageProducer producer)throws Exception {for (int i = 1; i <= SEND_NUMBER; i++) {String msg = "用户" + userId + ":内容" + i;TextMessage message = session.createTextMessage(msg + i);// 发送消息到目的地方System.out.println("发送消息:" + msg);producer.send(message);}}
}

MyThread.java

public class MyThread extends Thread {private boolean flag;private int i = 0;MyThread(){flag = true;}MyThread(int i){flag = false;this.i = i;}public void run() {int i = 1000;if(flag)new Receiver().listen();elsewhile(--i>0)new Sender(this.i).send();}public static void main(String[] args){//一个消费者new MyThread().start();//多个生产者int i = 80;while(i-->0)new MyThread(i).start();}
}

本文说的并不详细,后期会补上。
先给几个连接:

ActiveMQ入门实例:
http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html
作者:xwdreamer

ActiveMQ初体验:
http://www.cnblogs.com/diorlv/p/3328712.html
作者:diorlv

Android中应用ActiveMQ(推送相关):
http://blog.csdn.net/junfeng120125/article/details/36420083
作者:永不放弃的IT码农

转载于:https://my.oschina.net/lvzunwei/blog/687869

ActiveMQ简单使用介绍相关推荐

  1. JMS学习(2):ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了消息通信的规范JM ...

  2. ActiveMQ简单介绍以及安装

    ActiveMQ简单介绍以及安装   现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS ...

  3. JMS(Java消息服务)(Activemq简单介绍)

    是什么? JMS(java消息服务)是规范,它定义了一些规则,一些接口.具体实现由各种做这个产品的厂家或开源组织来实现. 为什么? 在JMS还没有诞生前,每个企业都会有自己的一套内部消息系统,比如项目 ...

  4. ActiveMQ简单介绍

    消息通信的规范JMS,我们这篇博文介绍一款开源的JMS具体实现--ActiveMQ.ActiveMQ是一个易于使用的消息中间件. 消息中间件 我们简单的介绍一下消息中间件,对它有一个基本认识就好,消息 ...

  5. 深入浅出JMS(二)–ActiveMQ简单介绍以及安装(转载)

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了消息通信的规范JM ...

  6. JMS学习(3):--ActiveMQ简单的HelloWorld实例

    第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...

  7. 深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例

    第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...

  8. 深入浅出JMS(三)–ActiveMQ简单的HelloWorld实例(转载)

    第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...

  9. matlab整型和浮点的区别,技术帖 | 心理学MATLAB初学者教程--简单数据类型介绍(逻辑型数据,整型/浮点型数据,字符型)......

    1.2.1 什么是变量和变量名 变量这个词似乎在许多地方都有出现,在计算机中变量是指是一段有名字的连续存储空间(摘自百度百科),而这个所谓的名字就叫做变量名.举个例子说现在我们再MATLAB的命令窗口 ...

最新文章

  1. 【超赞】技术架构的战略和战术原则
  2. 前端最新技术学习地址总结
  3. JAVA基础--JAVA中的反射机制详解
  4. 花体英文字帖pdf可打印_考研政治 | 马原24个主观题答题原理!PDF可打印!
  5. 哪些学校招计算机类在职研究生,2020计算机科学与技术在职研究生有哪些院校可以报考?...
  6. 九张图带你了解全宇宙最神秘的团体——程序员
  7. 人工智能/数据科学比赛汇总 2019.4
  8. CPython 标准库源码分析 collections.Counter
  9. 各型号交换机端口镜像配置方法和命令
  10. 怎么将英文的PDF翻译成中文的
  11. AR/VR应用前景探讨
  12. c++语言如何判断奇偶数,C++ 判断奇数偶数
  13. VS2015专业版打开处于白屏状态
  14. 简明c语言,简明易懂的C语言俄罗斯方块
  15. js 获取每个月的第一天和最后一天日期
  16. P3373(线段树)
  17. 手游开发神器 cocos2d-x editor 教程聚合和代码下载(持续更新中)
  18. ologit 平行线检验 brant踩坑历程not all independent variables can be retained in binary logits brant test cann
  19. 5000人小程序 服务器,微信公开课憋了哪些大招?放开5000好友限制,小程序超8000亿规模...
  20. 2022年水彩笔市场前景分析及研究报告

热门文章

  1. Oracle安装完成后如何创建表空间及用户
  2. Weex Flexbox弹性布局使用
  3. C++11 智能指针unique_ptr使用 -- 以排序二叉树为例
  4. 编写了一个通过手机短信平台收发短信的软件
  5. Harris及Shi-Tomasi原理及源码解析
  6. 虚拟与现实的距离——VR产业链史上最全梳理收藏版本【上篇】
  7. 2016年,C语言该怎样写
  8. MAC下PHP7.1.23安装intl3.0.0
  9. 论文笔记之:Graph Attention Networks
  10. Spark streaming vs JStorm