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入门案例的更多相关文章

  1. ActiveMQ入门案例-生产者代码实现

    <–start–> 使用Java程序操作ActiveMQ生产消息,代码的复杂度较高,但也没有默写下来的必要. 开发ActiveMQ首先需要导入activemq-all.jar包,如果是ma ...

  2. 深入浅出 JMS(二) - ActiveMQ 入门指南

    深入浅出 JMS(二) - ActiveMQ 入门指南 上篇博文深入浅出 JMS(一) – JMS 基本概念,我们介绍了消息通信的规范JMS,这篇博文介绍一款开源的 JMS 具体实现-- Active ...

  3. ActiveMQ入门练习

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久 ...

  4. ActiveMQ 入门Nodejs版

    ActiveMQ 入门下载与安装 官方下载地址 解压,运行bin/win[32|64]/activemq[.bat] 启动服务 环境信息 控制台: http://localhost:8161 默认端口 ...

  5. ActiveMQ之一--ActiveMQ入门

    MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息.MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义 ...

  6. ActiveMQ 入门和与 Spring 整合

    ActiveMQ 入门演示 activemq 依赖 <dependency> <groupId>org.apache.activemq</groupId> < ...

  7. ActiveMQ入门系列三:发布/订阅模式

    在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...

  8. ActiveMQ入门系列二:入门代码实例(点对点模式)

    在上一篇<ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)>中,大致介绍了ActiveMQ和一些概念,并下载.安装.启动他,还访问了他的控制台页面. 这篇,就用代 ...

  9. SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)

    SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...

随机推荐

  1. Shell 读取用户输入

    14.2  读取用户输入 14.2.1  变量 上一章我们谈到如何定义或取消变量,变量可被设置为当前shell的局部变量,或是环境变量.如果您的shell脚本不需要调用其他脚本,其中的变量通常设置为脚 ...

  2. 【Zabbix】 Zabbix表结构说明【转载】

    本文转自[https://www.cnblogs.com/shhnwangjian/p/5484352.html] 参考文[https://www.cnblogs.com/learningJAVA/p ...

  3. 58 同城 iOS 客户端 iOS11 及 iPhone X 适配实践

    一.前言 前段时间 WWDC 大会上苹果推出了 iOS11 系统 和 iPhone X 新机型,相信各个 iOS 团队的开发者都已经在计划新系统和新机型的适配工作了.不得不说,新系统和新机型的发布确实 ...

  4. [poj2342]Anniversary party_树形dp

    Anniversary party poj-2342 题目大意:没有上司的舞会原题. 注释:n<=6000,-127<=val<=128. 想法:其实就是最大点独立集.我们介绍树形d ...

  5. android中include标签使用详解

    android中include标签是为了便于控件的覆用的一个很好解决方案.   但是也有一些需要注意的地方,下面是本人在项目中碰到过的一个问题,做此记录,便于以后查看.   include标签用法. ...

  6. 解决NSURLConnection finished with error - code -1100错误

    更新到xcode9以后,拖进工程中一个html文件,webview加载这个文件,xcode一直抛出 NSURLConnection finished with error - code -1100异常 ...

  7. 借鉴别人的Oracle 11g安装和卸载图文教程

    Oracle 11g安装 1.解压下载的包,然后进入包内,点击setup.exe开始安装 . 2.出现如下:一般把那个小对勾取消,点击下一步进行, 弹出下图这个后点‘是' 3.下图后,选择创建和配置数 ...

  8. CountDownLatch 源码解析—— countDown()

    上一篇文章从源码层面说了一下CountDownLatch 中 await() 的原理.这篇文章说一下countDown() . public void countDown() { //CountDow ...

  9. 『开源』设置系统 主音量(0~100 静音) VolumeHelper 兼容 Xp Win7 .Net 20 AnyCPU

    背景: 近来的生活一团乱麻,没心态写高大上的代码,于是就着手 写了几个 辅助类. 在整理 InkFx.Utils 时,发现有几个 辅助类 只写了定义,没有实现函数体,于是就 花了1天时间 完善了一下. ...

  10. 第二次作业:软件分析之Steam的前世今生

    摘要:本次作业我将介绍一下Steam的相关内容,以及对Steam的相关调研测评,以及需求分析,最后就是对Steam的建议以及在中国的发展提出相应的建议 一.相关信息      Steam是一个整合游戏 ...