文档章节

activeMQ发送消息producer和消费消息consumer

爱运动的小乌龟
 爱运动的小乌龟
发布于 2017/06/24 23:47
字数 432
阅读 20
收藏 0
点赞 0
评论 0

一、启动ActiveMQ

二、把下的activeMQ的lib下的所有jar添加到项目中

三、producer 生产者功能:

package apache.activemq.test.produce.consumer;

import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Session;

import org.apache.activemq.ActiveMQConnectionFactory;

public class MQProducer {
    /**
     * activeMQ生产者
     * producer 生产者负责向activeMQ的队列中发送消息
     * 
     */
    //定义链接地址。
    private static final String url="tcp://localhost:61616";
    //指定消息发送的目的队列,如果这个队列不存在,程序启动的时候也会自动创建。
    private static final String QUEUE_NAME="001test";
    public void activeMqProducer(){
        do{
        try {
            //从连接工厂获取一个连接
            ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(url);
            Connection connection = activeMQConnectionFactory.createConnection();
            //开启连接
            connection.start();
            //通过连接获取一个回话对象
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            //指定消息的目的地
            Destination destination=session.createQueue(QUEUE_NAME);
            //通过回话对象获取一个生产者对象
            MessageProducer producer = session.createProducer(destination);
            //对发送的消息进行持久化保存
            producer.setDeliveryMode(DeliveryMode.PERSISTENT);
            //封装消息,并发送消息到目的队列中
            String msg="";
            for(int i=0;i<30;i++){
                msg="第"+i+"条信息...";
                System.out.println(msg);
                Message message = session.createTextMessage(msg);
                producer.send(message);
            }
            producer.close();
            connection.close();
            session.commit();
            
        
        
        } catch (JMSException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }while(true);//保证生产者不停的进行生产
    }

}
发送完的结果:

四、消费者程序:

package apache.activemq.test.produce.consumer;

import java.util.ArrayList;

import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

public class MQConsumer {
    private static final String url="tcp://localhost:61616";
    private static final String QUEUE_NAME="001test";
    public void activeMQConsumer(){
        ArrayList<String> list = new ArrayList<String>();
        int count=0;
        
        try {
            ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(url);
            Connection connection = activeMQConnectionFactory.createConnection();
            connection.start();
            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
            Destination destination = session.createQueue(QUEUE_NAME);
            MessageConsumer consumer = session.createConsumer(destination);
            do{
                //循环消费所有数据
            Message msg = consumer.receive(100);
            if(msg instanceof TextMessage){
                String message=((TextMessage) msg).getText();
                list.add(message);
                count++;
                if(count==10){
                    for(int i=0;i<10;i++){
                        System.out.println(list.get(i));
                    }
                    count=0;
                }
                
            }
            }while(true);
        
        } catch (JMSException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}
 

消费后的队列:

© 著作权归作者所有

共有 人打赏支持
爱运动的小乌龟
粉丝 1
博文 146
码字总数 41387
作品 0
朝阳
ActiveMQ RabbitMQ KafKa对比

前言: ActiveMQ和 RabbitMq 以及Kafka在之前的项目中都有陆续使用过,当然对于三者没有进行过具体的对比,以下摘抄了一些网上关于这三者的对比情况,我自己看过之后感觉还 是可以的,比较清...

xiaomin0322
05/11
0
0
ActiveMQ初探(3)——与SpringBoot整合

在上一章:ActiveMQ(2)——与Spring整合中,我们已经完成了ActiveMQ与Spring进行整合,本章将进行与SpringBoot整合。 发送即时消息 Step1:添加依赖包: 这里我们不使用网上大多数的,因为...

yuanlaijike
05/08
0
0
ActiveMQ在C#中的应用

ActiveMQ是个好东东,不必多说。ActiveMQ提供多种语言支持,如Java, C, C++, C#, Ruby, Perl, Python, PHP等。由于我在windows下开发GUI,比较关心C++和C#,其中C#的ActiveMQ很简单,Apache提...

postdep
2015/08/24
0
0
ActiveMQ初探(1)——介绍与基本使用

一、ActiveMQ 1.1 什么是ActiveMQ 是Apache出品,最流行的,能力强劲的。ActiveMQ是一个完全支持和规范的 实现,尽管规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊...

yuanlaijike
04/15
0
0
ActiveMQ 消息服务(一)

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

Andy市民
2015/11/06
0
0
Apache ActiveMQ Queue Topic 详解

一、特性及优势 1、实现 JMS1.1 规范,支持 J2EE1.4以上 2、可运行于任何 jvm和大部分 web 容器(ActiveMQ works great in any JVM) 3、支持多种语言客户端(java, C, C++, AJAX, ACTIONSCR...

蔡少东
2015/01/12
0
0
消息队列篇—详谈ActiveMQ消息队列模式的分析及使用

消息队列(Message Queue)是分布式系统中重要的组件,通用使用场景可以简单地描述为当不需要立即获得结果,但是并发量需控制时就需要使用消息队列。消息列队有两种消息模式,一种是点对点的...

afreon
04/22
0
0
rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较

Kafka作为时下最流行的开源消息系统,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。相比较于RocketMQ等其他常见消息系统,Kafka在保障了大部分功能特性的同时,还提供了超一...

xumaojun
05/06
0
0
成小胖学习 ActiveMQ · 基础篇

原文出处:cyfonly 过了个春节,回到公司的成小胖变成了成大胖。但是你们千万别以为他那个大肚子里面装的都是肥肉,里面的墨水也多了不少嘞,毕竟成小胖利用春节的半个月时间专心学习并研究了...

cyfonly
2017/11/27
0
0
ActiveMQ传输文件的几种方式原理与优劣

本文讨论ActiveMQ传输文件的几种方法的原理及其利弊,作为消息发送、直接传输文件、使用ftp或http中转。最后介绍扩展ActiveMQ实现自定义文件传输方式,讨论如何实现高效的文件传输。by kimm...

chaun
2015/04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring配置xml启动报错 Connot find 'beans'

1.我们先看一下spring的原始配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSc......

江湖鱼大虾
9分钟前
0
0
与女儿谈商业模式 (4):戴尔的成功秘诀

分类:与女儿谈商业模式 | 标签: 戴尔 经济学 陈志武 2007-05-15 10:26阅读(7434)评论(36)   2007年5月《创富志》与“女儿谈商业模式”专栏 (之四)   戴尔的成功秘诀   陈志武   ...

祖冲之
18分钟前
0
0
www.w3.org被qiang导致logback报错:Connect reset

web项目部署到tomcat后,web项目中的logback不能运行,报错信息如下: Reported exception: ch.qos.logback.core.joran.spi.JoranException: I/O error occurred while parsing xml file......

浮躁的码农
32分钟前
0
0
JDeveloper中文乱码解决

全局设置字体; 全局设置环境编码; 项目设置编译器环境编码。

wffger
今天
2
0
MySQL主从介绍 , 准备工作,配置主,配置从, 测试主从同步

MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启bin...

TaoXu
今天
2
0
线性代数学习总结

亭子happy
今天
1
0
Java8:Lambda表达式增强版Comparator和排序

1、概述 在这篇教程里,我们将要去了解下即将到来的JDK 8(译注,现在JDK 8已经发布了)中的Lambda表达式——特别是怎样使用它来编写Comparator和对集合(Collection)进行排序。 这篇文章是...

孟飞阳
今天
0
0
从架构到组件,深挖istio如何连接、管理和保护微服务2.0?

近几年我一直从事于微服务系统的设计以及实现方面的工作,属于微服务架构一线实践者。之前做过一些单体系统的微服务改造,在微服务拆分、治理等方面都有一定的经验。 本人比较特殊一点的经历...

xiaomin0322
今天
1
0
基于vue的h5文件切片上传(获取文件md5,实现秒传、进度条实现)

template <button @click="file"></button><label ref="upload" style="position: relative;"> <input type="file" @change="selectFile" style="position: abs......

hkaikai
今天
2
0
Spring Boot 2.0 项目实现自同步AD域账号

在通过Spring Boot的自动化装配功能及JDK自带的LDAP模块,可通过如下几个简单步骤实现业务系统自动同步AD域账号功能。 1. Java自带ldap搜索域账号信息核心代码: try { LdapContext ctx...

B超
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部