1、下载安装ActiveMQ

下载可以去官网下载:http://activemq.apache.org/download.html。我们这里使用windows测试,所以下载windows版本即可。

2、启动ActiveMQ 

下载zip文件后直接解压,解压后我们比较关注的是bin和conf目录。

  • bin存放的是脚本文件
  • conf存放的是基本配置文件
  • data存放的是日志文件
  • docs存放的是说明文档
  • examples存放的是简单的实例
  • lib存放的是activemq所需jar包
  • webapps用于存放项目的目录

启动ActiveMQ非常的简单。进入bin目录
双击“activemq.bat”就启动运行了。因为ActiveMQ是用Java编写的,所以必须确保电脑已经安装了JDK。

双击运行之后就可以在浏览器里面输入:http://localhost:8161/admin。就能够进入ActiveMQ的后台页面了。帐号密码默认都是:admin
Java程序连接端口:61616

修改61616端口,可以修改文件conf>activemq.xml
修改登录名和密码,可以修改文件conf>jetty-realm.properties

3、创建一个ActiveMQ工程

这里还是先放一张图:

根据这张图我们实现了一个队列Queue的代码如下

1.pom.xml

<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-core</artifactId>
<version>5.7.0</version>
</dependency>

2.消费者代码

package cn.duanjt;

import java.io.IOException;

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.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ActiveMQSession; /**
* 消费者
* @author 段江涛
* @date 2018-11-23
*/
public class Consumer {
// 全部使用缺省值
private static String USERNAME = ActiveMQConnection.DEFAULT_USER;
private static String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
private static String BROKER = ActiveMQConnection.DEFAULT_BROKER_URL; public static void main(String[] args) throws IOException {
ConnectionFactory factory;
Connection connection = null;
Session session;
Queue queue;
Message message;
MessageConsumer consumer; try {
factory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER);
connection = factory.createConnection();
connection.start(); session = connection.createSession(false, ActiveMQSession.AUTO_ACKNOWLEDGE);
queue = session.createQueue("zd-duanjt");
consumer = session.createConsumer(queue);
//注释部分为同步方式
/*while (true) {
message = consumer.receive();
TextMessage tmsg = (TextMessage) message;
System.out.println("接收到数据:" + tmsg.getText());
}*/
//下面是异步方式,通过注册监听
consumer.setMessageListener(new MessageListener() { @Override
public void onMessage(Message message) {
TextMessage tmsg = (TextMessage) message;
try {
System.out.println("接收到数据:" + tmsg.getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}); } catch (Exception e) {
e.printStackTrace();
} finally{
// 之前在这里把连接关闭了,导致一直无法消费数据,注意,这里千万不要关闭连接
}
}
}

3.生产者代码

package cn.duanjt;

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.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ActiveMQSession; /**
* 生产者产生数据
* @author 段江涛
* @date 2018-11-23
*/
public class Productor {
// 全部使用缺省值
private static String USERNAME = ActiveMQConnection.DEFAULT_USER;
private static String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
private static String BROKER = ActiveMQConnection.DEFAULT_BROKER_URL; public static void main(String[] args) throws JMSException {
ConnectionFactory factory = new ActiveMQConnectionFactory(USERNAME, PASSWORD, BROKER);
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false, ActiveMQSession.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("zd-duanjt");
MessageProducer productor = session.createProducer(queue);
for (int i = 0; i < 3; i++) {
String msg = "Hello world:" + i;
Message message = session.createTextMessage(msg);
productor.send(message);
System.out.println("发送数据:" + msg);
} connection.close(); }
}

重点说明:

1.Queue queue = session.createQueue("zd-duanjt");表示创建一个队列,我们也可以创建一个Topic,Topic topic=session.createTopic("zd-topic");

2.注意这里面的JMS相关的类都在包javax.jms.*下

Java访问ActiveMQ的更多相关文章

  1. java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况

    java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...

  2. java访问修饰符

    了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...

  3. [THINKING IN JAVA]访问权限控制

    6 访问权限控制 6.1 包:库单元 package.import.import *.import static: 修改classpath环境变量可以将自己写的类库添加至环境变量并在任何java程序中 ...

  4. java 访问 usb

    java 要访问 usb 设备,通常要自己写c/c++代码,然后再用 java 访问这些组件,以达到控制usb设备的目的.但现在有一个开源组件 libusb 帮我们做好了访问usb设备的封装(包括wi ...

  5. Java访问USB设备

    最近在用Java访问RDing设备,使用的是Java HID API.使用过程中发现一个问题,由于是嵌入式小白,不知道如何向USB设备发送report.于是想到可以看看自带的软件如何访问USB的.找到 ...

  6. java访问权限的问题

    java访问权限的问题 java 访问权限 修饰符 背景: 关于java中的四种访问修饰符,public ,default ,protected ,private的作用范围本以为很熟悉了,但碰到了这样 ...

  7. Hadoop(五)搭建Hadoop与Java访问HDFS集群

    前言 上一篇详细介绍了HDFS集群,还有操作HDFS集群的一些命令,常用的命令: hdfs dfs -ls xxx hdfs dfs -mkdir -p /xxx/xxx hdfs dfs -cat ...

  8. java访问权限修饰符

    作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × ja ...

  9. MinerQueue.java 访问队列

    MinerQueue.java 访问队列 package com.iteye.injavawetrust.miner; import java.util.HashSet; import java.ut ...

随机推荐

  1. 2018-2019-1 20189206 vim.c插件安装

    vim插件安装 vim插件安装 由于今天在安装vim.c插件耗费了很多时间,配置文件一直不生效,特此记录以下安装插件的方法. 安装vim.c按照博客的方法 第一步:创建目录~/.vim 这个目录是用来 ...

  2. bzoj 1093 最大半连通子图 - Tarjan - 拓扑排序 - 动态规划

    一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:?u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v的有向路径或者从v到u的有向路径.若G'=(V ...

  3. 本地git远程github

    操作环境: windows系统 本地已安装git 步骤 1.右键进入git bash 2.进入本地仓库,如果有,则跳到步骤3.如果没有,则找到要作为仓库的文件夹,例如e://git//reposito ...

  4. checkbox勾选事件,JQ设置css,下拉框JQ选中

    <input id="CheckMainCompany" type="checkbox"/> $(function() { $("#Che ...

  5. Django框架(六) Django之模板继承

    模版导入和继承 模版导入 一个页面只能继承一个模板,如何解决了?如何使用多个模板,或者引入其他页面 <% include "a.html" %> 可以引用多次 模板,i ...

  6. android 系统 不深度休眠【转】

    本文转载自:https://blog.csdn.net/fmc088/article/details/80401405 1.分析解析 android系统有earlysuspend和suspend两种休 ...

  7. FastQC结果详解

    REF https://www.plob.org/article/5987.html 解压后,查看html格式的结果报告.结果分为如下几项: 结果分为绿色的"PASS",黄色的&q ...

  8. .net Core 2.1 后 Session保存,新页面获取不到值

    https://blog.csdn.net/kuui_chiu/article/details/81060051 https://blog.csdn.net/niunan/article/detail ...

  9. CF600E Lomsat gelral(dsu on tree)

    dsu on tree跟冰茶祭有什么关系啊喂 dsu on tree的模板题 思想与解题过程 类似树链剖分的思路 先统计轻儿子的贡献,再统计重儿子的贡献,得出当前节点的答案后再减去轻儿子对答案的贡献 ...

  10. DPDK安装方法 17.12.13

    DPDK安装方法 17.12.13 Ubuntu: $ git clone https://github.com/DPDK/dpdk.git $ cd dpdk/ $ export RTE_ARCH= ...