jms - activeMQ入门案例
activeMQ入门案例
叨叨一波,很久没写博客了,最近比较慢,时间抽不出来,这个借口说的很尴尬...我知道作为一名合格的码农就必须养成每天一博客的习惯.希望友友们别像我这样懒,闲话不多时进入今天的主题,理论就不多说了,直接上案例.
1.activemq 是Apache旗下的一个开源的中间件,所以我们先去官网下载解压包,官网地址 : http://activemq.apache.org/activemq-5153-release.html
备注:linux 下载框中的解压包,window就下载箭头指向的.

2.下载后解压,解压后进入到bin目录下,可以看到两个文件夹(win32/win64)是32进32,否则相反

3.进入到对应目录能看到3个后缀为.bat 的可以执行文件,第一个cmd 方式运行,红框中就是activemq启动的端口号,不能关闭窗口,不然服务结束,接着我们测试打开浏览器输入192.168.2.70:8161

3.第二种方式点击第二个.bat 文件则是在本机服务里面启动,就跟mysql服务启动一直,就不再上图.
4.浏览器打开的页面如下,如果没有这个页面证明avtivemq启动错误
5.点击红框会弹出登录信息,初始化账号密码默认为admin admin 进入后就能看到管理页面不在上图
6. 接下来展示下activemq的消息队列案例,工具使用idea 创建maven 项目

依赖包添加好,项目结构也在上面.
7.连接activemq 服务的链接,我是通过CreateQueueConnectionUtil工具类封装好减少代码的溶于,这是开发人员必备的,接下来上代码:
package com.tjl.Util; import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ActiveMQQueueSession; import javax.jms.*; /**
* Created by tangjialei on 2018/4/13.
* 创建activeme连接
*/
public class CreateQueueConnectionUtil {
private static final String url="tcp://192.168.2.70:61616";//activemq默认端口
private static final String queueName = "queue-test";//提供者名字
private static ConnectionFactory connectionFactory = null;//工厂
private static Connection connection = null;//链接
private static Destination destination = null;//目标
private static Session session = null;//会话 public CreateQueueConnectionUtil() { }
public static Destination getdestination(){
try{
//1.创建ConnectionFactory工厂
connectionFactory = new ActiveMQConnectionFactory(url);
//2.创建连接
connection = connectionFactory.createConnection();
//3.启动链接
connection.start();
//4.创建会话
session =CreateQueueConnectionUtil.getSession();
//5.创建目标
destination = session.createQueue(queueName);
}catch (Exception e){
e.printStackTrace();
}finally {
if(null == destination){
System.out.println("创建destination失败!");
}else{
System.out.println("创建destination成功!");
}
}
return destination;
} public static Session getSession(){
if(session == null){
try{
return connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//应答模式
}catch (JMSException e){
e.printStackTrace();
}
}
return session;
} public static void onClose(){
if(null !=connection){
try{
connection.close();
}catch (JMSException e){
e.printStackTrace();
}
}
}
} 8.我们来看看提供者代码
package com.tjl.jms.queue; import com.tjl.Util.CreateQueueConnectionUtil;
import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; /**
* Created by tangjialei on 2018/4/13.
* 主题模式,此类为消息的提供者
*/
public class AppProducer {
private static Session session=null;
public static void main(String[] args) throws JMSException {
//5.创建一个目标
Destination destination = CreateQueueConnectionUtil.getdestination();
//获取session
session = CreateQueueConnectionUtil.getSession();
//创建一个生产者
MessageProducer producer = session.createProducer(destination);
for (int i = 0; i <10 ; i++) {
//7.通过会话创建消息
TextMessage textMessage = session.createTextMessage("hello activrme"+i);
textMessage.setText("我是你第"+i+"个爸爸");
//8.发送消息
producer.send(textMessage);//生产者向服务生产消息
System.out.println("发送消息" + textMessage.getText());
} //9.关闭连接
CreateQueueConnectionUtil.onClose();
}
}
9.接着上消费者代码:
package com.tjl.jms.queue; import com.tjl.Util.CreateQueueConnectionUtil; import javax.jms.*; /**
* Created by tangjialei on 2018/4/13.
* 主题模式:消费者(消费activemq)
*/
public class AppConsumer {
private static Session session;
public static void main(String[] args) throws JMSException {
//创建去哪个服务消费目标
Destination destination = CreateQueueConnectionUtil.getdestination();
//获取session
session = CreateQueueConnectionUtil.getSession();
//创建一个消费者MessageConsumer
MessageConsumer consumer = session.createConsumer(destination);
//创建一个监听器
consumer.setMessageListener(new MessageListener() {//MessageListener消息监听
public void onMessage(Message message) {//异步回调函数
TextMessage textMessage = (TextMessage) message;
try{
System.out.println("我是消费者我接收到消息" + textMessage.getText());
}catch (JMSException e){
e.printStackTrace();
}
}
});
}
} 代码上完我们开始看运行效果
提供者运行图

接着打开我们前面的192.168.70:8161 可以看到刚发送的消息信息

接着运行消费者去消费者10条消息

看到控制台完美输出消费者消费信息,这时候你在到8161端口查看,消息就被消费了,到此一个简单的消息队列案例就完成了,很简单大神勿喷~~~~~~~~~~~
jms - activeMQ入门案例的更多相关文章
- ActiveMQ入门案例-生产者代码实现
<–start–> 使用Java程序操作ActiveMQ生产消息,代码的复杂度较高,但也没有默写下来的必要. 开发ActiveMQ首先需要导入activemq-all.jar包,如果是ma ...
- 深入浅出 JMS(二) - ActiveMQ 入门指南
深入浅出 JMS(二) - ActiveMQ 入门指南 上篇博文深入浅出 JMS(一) – JMS 基本概念,我们介绍了消息通信的规范JMS,这篇博文介绍一款开源的 JMS 具体实现-- Active ...
- ActiveMQ入门练习
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久 ...
- ActiveMQ 入门Nodejs版
ActiveMQ 入门下载与安装 官方下载地址 解压,运行bin/win[32|64]/activemq[.bat] 启动服务 环境信息 控制台: http://localhost:8161 默认端口 ...
- ActiveMQ之一--ActiveMQ入门
MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息.MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义 ...
- ActiveMQ 入门和与 Spring 整合
ActiveMQ 入门演示 activemq 依赖 <dependency> <groupId>org.apache.activemq</groupId> < ...
- ActiveMQ入门系列三:发布/订阅模式
在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...
- ActiveMQ入门系列二:入门代码实例(点对点模式)
在上一篇<ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)>中,大致介绍了ActiveMQ和一些概念,并下载.安装.启动他,还访问了他的控制台页面. 这篇,就用代 ...
- SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)
SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...
随机推荐
- Shell 读取用户输入
14.2 读取用户输入 14.2.1 变量 上一章我们谈到如何定义或取消变量,变量可被设置为当前shell的局部变量,或是环境变量.如果您的shell脚本不需要调用其他脚本,其中的变量通常设置为脚 ...
- 【Zabbix】 Zabbix表结构说明【转载】
本文转自[https://www.cnblogs.com/shhnwangjian/p/5484352.html] 参考文[https://www.cnblogs.com/learningJAVA/p ...
- 58 同城 iOS 客户端 iOS11 及 iPhone X 适配实践
一.前言 前段时间 WWDC 大会上苹果推出了 iOS11 系统 和 iPhone X 新机型,相信各个 iOS 团队的开发者都已经在计划新系统和新机型的适配工作了.不得不说,新系统和新机型的发布确实 ...
- [poj2342]Anniversary party_树形dp
Anniversary party poj-2342 题目大意:没有上司的舞会原题. 注释:n<=6000,-127<=val<=128. 想法:其实就是最大点独立集.我们介绍树形d ...
- android中include标签使用详解
android中include标签是为了便于控件的覆用的一个很好解决方案. 但是也有一些需要注意的地方,下面是本人在项目中碰到过的一个问题,做此记录,便于以后查看. include标签用法. ...
- 解决NSURLConnection finished with error - code -1100错误
更新到xcode9以后,拖进工程中一个html文件,webview加载这个文件,xcode一直抛出 NSURLConnection finished with error - code -1100异常 ...
- 借鉴别人的Oracle 11g安装和卸载图文教程
Oracle 11g安装 1.解压下载的包,然后进入包内,点击setup.exe开始安装 . 2.出现如下:一般把那个小对勾取消,点击下一步进行, 弹出下图这个后点‘是' 3.下图后,选择创建和配置数 ...
- CountDownLatch 源码解析—— countDown()
上一篇文章从源码层面说了一下CountDownLatch 中 await() 的原理.这篇文章说一下countDown() . public void countDown() { //CountDow ...
- 『开源』设置系统 主音量(0~100 静音) VolumeHelper 兼容 Xp Win7 .Net 20 AnyCPU
背景: 近来的生活一团乱麻,没心态写高大上的代码,于是就着手 写了几个 辅助类. 在整理 InkFx.Utils 时,发现有几个 辅助类 只写了定义,没有实现函数体,于是就 花了1天时间 完善了一下. ...
- 第二次作业:软件分析之Steam的前世今生
摘要:本次作业我将介绍一下Steam的相关内容,以及对Steam的相关调研测评,以及需求分析,最后就是对Steam的建议以及在中国的发展提出相应的建议 一.相关信息 Steam是一个整合游戏 ...