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. 【题解】Luogu P2604 [ZJOI2010]网络扩容

    原题传送门:P2604 [ZJOI2010]网络扩容 这题可以说是板题 给你一个图,先让你求最大流 再告诉你,每条边可以花费一些代价,使得流量加一 问至少花费多少代价才能使最大流达到k 解法十分简单 ...

  2. 模拟实现ATM+购物商城程序

    流程图: 需求: ATM:模拟实现一个ATM + 购物商城程序额度 15000或自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消 ...

  3. TensorFlow 生成 .ckpt 和 .pb

    原文:https://www.cnblogs.com/nowornever-L/p/6991295.html 1. TensorFlow  生成的  .ckpt 和  .pb 都有什么用? The . ...

  4. Restful framework【第七篇】权限组件

    基本使用 -写一个类: class MyPer(BasePermission): message='您没有权限' def has_permission(self, request, view): # ...

  5. 日志统计 尺取法【蓝桥杯2018 C/C++ B组】

    标题:日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞" ...

  6. SP10707 COT2 - Count on a tree II 莫队

    链接 https://vjudge.net/problem/SPOJ-COT2 https://www.luogu.org/problemnew/show/SP10707 思路 dfs欧拉序转化为普通 ...

  7. 【做题】neerc2017的A、C、I、L

    A - Archery Tournament 一开始往化简公式的方向去想,结果没什么用. 考虑与一条垂线相交的圆的个数.不难YY,当圆的个数最多时,大概就是这个样子的: 我们稍微推一下式子,然后就能发 ...

  8. Win32汇编学习(1):基本概念

    背景知识 Windows 把每一个 Win32 应用程序放到分开的虚拟地址空间中去运行,也就是说每一个应用程序都拥有其相互独立的 4GB 地址空间,当然这倒不是说它们都拥有 4GB 的物理地址空间,而 ...

  9. 【Dalston】【第一章】 服务治理(Eureka)

    Spring Cloud是一系列框架的集合,其基于Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,构建了服务治理(发现注册).配置中心.消息总线.负载均衡.断路器.数据监控.分 ...

  10. 论文阅读之:Deep Meta Learning for Real-Time Visual Tracking based on Target-Specific Feature Space

    Deep Meta Learning for Real-Time Visual Tracking based on Target-Specific Feature Space  2018-01-04  ...