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. 关于Spring注解@Async引发其他注解失效

    概述 在前面一篇文章中,介绍,在一个Bean中注入自己,如果有@Async和@Transaction,如果使用@Autowire注入自身,会报循环依赖,如果使用BeanFactoryAware注入自己 ...

  2. 在JavaScript里 (a ==1 && a== 2 && a==3) 有可能是 true 吗?

    ps:今天看到这个有趣的问题,跟大家分享下 一个有趣的问题: 在 JavaScript 中, (a ==1 && a== 2 && a==3) 是否有可能为 true ...

  3. 企业必会技能 tomcat

    企业必会技能 tomcat tomcat   一.什么是Tomcat? Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项 ...

  4. DB2开发系列之三——SQL函数

    1.内置函数分类(SYSIBM模式内) 1)标量函数:返回一个标量值的函数: 2)聚合函数:也叫列函数,也返回一个标量值,这个值是一组输入值的计算结果:3)表函数:向引用它的 SQL 语句返回一个表: ...

  5. KVM之五:KVM日常管理常用命令

    1.查看.编辑及备份KVM 虚拟机配置文件 以及查看KVM 状态: 1.1.KVM 虚拟机默认的配置文件在 /etc/libvirt/qemu 目录下,默认是以虚拟机名称命名的.xml 文件,如下,: ...

  6. Java 并发编程实践基础 读书笔记: 第二章 构建线程安全应用程序

    1,什么是线程安全性? 简单概括就是一个类在多线程情况下能安全调用就是线程安全 2,Servlet  的线程安全性  默认是非线程安全的,写servlet代码的时候需要注意线程安全,注意同步 3,vo ...

  7. java使用io创建文件与删除文件的工具类

    java中对于文件的操作,是再常见不过了.以下代码是自己代码中所用到的工具类,仅供参考. import java.io.File; import java.io.IOException; /** * ...

  8. js版九宫格拼图与启发式搜索(A*算法)

    九宫格拼图游戏大家都很熟悉,这里给大家如介绍何应用状态空间搜索的方式求解拼图的最佳路径和一个游戏dome及自动求解方法: 本文分web版游戏的实现和启发式搜索算法两部分: 先看dome,直接鼠标点击要 ...

  9. wps中如何插入参考文献

    最近学校论文规定要将参考文献在正文中引用,所以自己对这一方面做一下总结:点击插入尾注, 1:打开你的论文 2:点击"引用"--"插入尾注" 3:你会发现出现的不 ...

  10. Python读取配置文件,并连接数据库SQL Server

    用配置文件保存固定的连接数据,改的话比较方便. 1.新建一个配置文件:SQlconfig.config,以数据库为例. 内容如下,当然也可以添加多个 [Database1] database=db_t ...