ActiveMQ的入门demo

 

步骤: 

1 :下载ActiveMQ

官网:http://activemq.apache.org/

2 :解压AcitveMQ,

根据自己的操作系统选择运行win64或者win32下的activemq.bat,双击运行。注意:千万不能选择bin目录下的activemq.bat,这样会闪退。

我的解压目录为:

3:创建Java项目:

引入jar包。注意:不能少了hawtbuf-1.11.jar这个包,这个包是不能缺少的。

目录结构如图:

4:登录本地的MQ服务:

登录地址:http://localhost:8161/

初始账号以及密码:admin,admin

截图如下:

登录后的界面如下:

5:代码实现:

Sender.java:

 1 package com.lm.activemq;
 2
 3 import javax.jms.Connection;
 4 import javax.jms.ConnectionFactory;
 5 import javax.jms.DeliveryMode;
 6 import javax.jms.Destination;
 7 import javax.jms.MessageProducer;
 8 import javax.jms.Session;
 9 import javax.jms.TextMessage;
10 import org.apache.activemq.ActiveMQConnection;
11 import org.apache.activemq.ActiveMQConnectionFactory;
12 /**
13  *
14  * @author Wei
15  * @time  2016年12月28日 下午8:37:38
16  * 参考:http://heisetoufa.iteye.com/blog/1908335
17  */
18 public class Sender {
19     private static final int SEND_NUMBER = 5;
20
21     public static void main(String[] args) {
22         // ConnectionFactory :连接工厂,JMS 用它创建连接
23         ConnectionFactory connectionFactory; // Connection :JMS 客户端到JMS
24         // Provider 的连接
25         Connection connection = null; // Session: 一个发送或接收消息的线程
26         Session session; // Destination :消息的目的地;消息发送给谁.
27         Destination destination; // MessageProducer:消息发送者
28         MessageProducer producer; // TextMessage message;
29         // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
30         /*connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
31                 ActiveMQConnection.DEFAULT_PASSWORD, "tcp://192.168.0.104:61616");*/
32         connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
33                 ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
34         //打印出用户和密码
35         System.out.println("ActiveMQConnection.DEFAULT_USER:" + ActiveMQConnection.DEFAULT_USER
36                 + ",ActiveMQConnection.DEFAULT_PASSWORD:" + ActiveMQConnection.DEFAULT_PASSWORD);
37         try { // 构造从工厂得到连接对象
38             connection = connectionFactory.createConnection();
39             // 启动
40             connection.start();
41             // 获取操作连接
42             session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
43             // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
44             destination = session.createQueue("foo.bar");
45             // 得到消息生成者【发送者】
46             producer = session.createProducer(destination);
47             // 设置不持久化,此处学习,实际根据项目决定
48             producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
49             // 构造消息,此处写死,项目就是参数,或者方法获取
50             sendMessage(session, producer);
51             session.commit();
52         } catch (Exception e) {
53             e.printStackTrace();
54         } finally {
55             try {
56                 if (null != connection)
57                     connection.close();
58             } catch (Throwable ignore) {
59             }
60         }
61     }
62
63     public static void sendMessage(Session session, MessageProducer producer) throws Exception {
64         for (int i = 1; i <= SEND_NUMBER; i++) {
65             TextMessage message = session.createTextMessage("ActiveMq 发送的消息" + i);
66             // 发送消息到目的地方
67
68             System.out.println("发送消息:" + "ActiveMq 发送的消息" + i);
69             producer.send(message);
70         }
71     }
72 }

Receiver.java:

 1 package com.lm.activemq;
 2
 3
 4 import javax.jms.Connection;
 5 import javax.jms.ConnectionFactory;
 6 import javax.jms.Destination;
 7 import javax.jms.MessageConsumer;
 8 import javax.jms.Session;
 9 import javax.jms.TextMessage;
10 import org.apache.activemq.ActiveMQConnection;
11 import org.apache.activemq.ActiveMQConnectionFactory;
12 /**
13  *
14  * @author Wei
15  * @time  2016年12月28日 下午8:37:51
16  * 参考:http://heisetoufa.iteye.com/blog/1908335
17  */
18 public class Receiver {
19     public static void main(String[] args) {
20         int i = 0;
21
22         // ConnectionFactory :连接工厂,JMS 用它创建连接
23         ConnectionFactory connectionFactory;
24         // Connection :JMS 客户端到JMS Provider 的连接
25         Connection connection = null;
26         // Session: 一个发送或接收消息的线程
27         Session session;
28         // Destination :消息的目的地;消息发送给谁.
29         Destination destination;
30         // 消费者,消息接收者
31         MessageConsumer consumer;
32         // connectionFactory = new ActiveMQConnectionFactory(
33         // ActiveMQConnection.DEFAULT_USER,
34         // ActiveMQConnection.DEFAULT_PASSWORD, "tcp://192.168.0.104:61616");
35         connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
36                 ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
37         try {
38             // 构造从工厂得到连接对象
39             connection = connectionFactory.createConnection();
40             // 启动
41             connection.start();
42             // 获取操作连接
43             session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
44             // 获取session注意参数值 foo.bar 是一个服务器的queue,须在在ActiveMq的console配置
45             destination = session.createQueue("foo.bar");
46             consumer = session.createConsumer(destination);
47             while (true) {
48                 // 设置接收者接收消息的时间,为了便于测试,这里谁定为100s
49                 TextMessage message = (TextMessage) consumer.receive();
50                 if (null != message) {
51                     i++;
52                     System.out.println("收到消息" + i +":"+ message.getText());
53                 } else {
54                     break;
55                 }
56             }
57         } catch (Exception e) {
58             e.printStackTrace();
59         } finally {
60             try {
61                 if (null != connection)
62                     connection.close();
63             } catch (Throwable ignore) {
64             }
65         }
66     }
67 }

使用 MQ编辑内容点击send按钮进行发送,

eclipse中Receiver的控制台的输出为:

收到消息17:Enter some text here for the message body...

这里可以编辑发送的内容等。
当然了,也可用过Java代码来进行消息队列的发送。

源码:链接:http://pan.baidu.com/s/1hsskzic 密码:8bty

时间: 2024-10-14 04:28:46

ActiveMQ的入门demo的相关文章

mybaits入门demo配置文件详解(二)

第一篇文章: mybaits开发环境准备及入门demo(一) 一.配置文件mybatis-config.xml 官方是这么说的:MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息 在MyBatis 的配置文件中 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//myba

mybaits入门demo映射文件详解(三)

第二篇文章:  mybaits入门demo配置文件详解(二) Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码.MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好. SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序): cache – 给定命名空间的缓存配置. cache-ref –

ActiveMQ从入门到精通(二)

接上一篇<ActiveMQ从入门到精通(一)>,本篇主要讨论的话题是:消息的顺序消费.JMS Selectors.消息的同步/异步接受方式.Message.P2P/PubSub.持久化订阅.持久化消息到MySQL以及与Spring整合等知识. 消息的顺序消费 在上一篇文章中,我们已经明确知道了ActiveMQ并不能保证消费的顺序性,即便我们使用了消息优先级.而在实际开发中,有些场景又是需要对消息进行顺序消费的,比如:用户从下单.到支付.再到发货等.如果使用ActiveMQ该如何保证消费的顺序性

RabbitMq 集成 spring boot 消息队列 入门Demo

spring boot 集成 RabbitMq还是很方便的.现在来一个简单的例子来集成rabbitmq.入门demo. 主要概念: 其中比较重要的概念有 4 个,分别为:虚拟主机,交换机,队列,和绑定. 虚拟主机:一个虚拟主机持有一组交换机.队列和绑定.为什么需要多个虚拟主机呢?很简单,RabbitMQ当中,用户只能在虚拟主机的粒度进行权限控制. 因此,如果需要禁止A组访问B组的交换机/队列/绑定,必须为A和B分别创建一个虚拟主机.每一个RabbitMQ服务器都有一个默认的虚拟主机"/"

我的Spring入门Demo

第一步:导入Spring jar 包 Spring核心包(4个) 日志包(2个) jdbc模板支持(1个) spring-jdbc-3.2.0.RELEASE.jar 模板相关事务处理包(1个) spring-tx-3.2.0.RELEASE.jar ORM框架模板支持(1个) spring-orm-3.2.0.RELEASE.jar 第二步:增加一个Spring 配置文件    beans.xml <?xml version="1.0" encoding="UTF-8

WebService入门Demo

以前写博客最主要的就是不知道写什么东西,现在感觉能写点东西,就是感觉博客随笔的标题挺难取的,最近工作中刚好用到了WebService,刚好可以写一篇博客.去年工作的时候自己也用到过,只是知道调用一些WebService中的方法,想想还是写篇博客的,也就是俗话说的不要只顾低头走路,还要注意抬头看天.还是写正文吧,现在每次写博客都会会扯点有的没的,不要见怪. WebService的基本概念 WebService看名字的简单点理解就是基于Web的服务,跟普通的web程序一样遵循Http协议,接收响应外

Mybatis 3.2.7 简单入门Demo

对最新版本 Mybatis 3.2.7 做了一个demo,做个记录 需要的基本jar: mybatis-3.2.7.jar mysql-connector-java-5.1.27.jar 首先配置xml文件 mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config

SpringBoot 入门 Demo

SpringBoot   入门 Demo Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 特点 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置

activemq入门demo

创建maven工程,pom文件如下 [html] view plain copy print? <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.