[ActiveMQ]发送消息与接收消息测试Demo

简介: ubuntu下: 安装并启动ActiveMQ 1.官网http://activemq.apache.org/下载最新版本的ActiveMQ,并解压;2.

ubuntu下:
安装并启动ActiveMQ
这里写图片描述

1.官网http://activemq.apache.org/下载最新版本的ActiveMQ,并解压;

2.进入对应目录,sudo ./activemq start

3,启动成功后,登录http://localhose:8161/admin/,登陆账号和密码都为admin,创建一个queue名为jyQueue;
这里写图片描述

启动成功;

发送端:

package MQjar.main;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.util.BooleanEditor;

import javax.jms.*;

/**
 * Created by IT-2 on 2017/3/6.
 */
public class Sender {
    private static final int SEND_NUMBER = 5;

    public static void main(String[] args){
        //ConnectionFactory:连接工厂,JMS用它创建连接
        ConnectionFactory connectionFactory;

        //Connection:JMS客户端到JMS Provider的连接
        Connection connection = null;

        //Session:一个发送或接收消息的线程
        Session session;

        //Destination:消息的目的地;消息的接收者
        Destination destination;

        //MessageProducer:消息发送者
        MessageProducer producer;

        //TextMessage message;
        //构造ConnectionFactory实例对象,此处采用ActiveMQ的实现jar
        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD,
                "tcp://192.168.233.135:61616"
        );

        try{
            //构造从工厂得到连接对象
            connection = connectionFactory.createConnection();

            //启动
            connection.start();

            //获取操作连接
            session = connection.createSession(Boolean.TRUE,
                    Session.AUTO_ACKNOWLEDGE);

            //获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在ActiveMQ的console配置
            destination = session.createQueue("jyQueue");

            //得到消息生成者(也就是发送者)
            producer = session.createProducer(destination);

            //设置不持久化,此处学习所用,实际情况请根据项目决定
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

            //构造消息,这里写死了,项目就是参数,或者方法获取
            sendMessage(session,producer);
            session.commit();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                if(null != connection)
                    connection.close();
            }catch (Throwable ignore){}
        }
    }

public static void sendMessage(Session session, MessageProducer producer) throws Exception{
    for (int i = 1; i <= SEND_NUMBER; i++){
        TextMessage message = session.createTextMessage("ActiveMQ...发送消息..." + i);

        //发送消息到目的地
        System.out.println("发送消息:" + "ActiveMQ...发送的消息..." + i);
        producer.send(message);
    }
}
}

接收端:

package MQjar.main;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.SessionId;
import org.apache.activemq.util.BooleanEditor;

import javax.jms.*;


/**
 * Created by IT-2 on 2017/3/6.
 */
public class Receiver {
    public static void main(String[] args) {
        //ConnectionFactory : 连接工厂,JMS用它来创建连接
        ConnectionFactory connectionFactory;

        //Connection:JMS客户端到JMS Provider的连接
        Connection connection = null;

        //Session:一个发送或接收消息的线程
        Session session;

        //Destination:消息的目的地;消息的接收者
        Destination destination;

        //消费者,消息接收者
        MessageConsumer consumer;

        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD,
                "tcp://192.168.233.135:61616"
        );
        try {
            //构造从工厂得到连接对象
            connection = connectionFactory.createConnection();
            //启动
            connection.start();
            //获取操作连接
            session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);

            //获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在ActiveMQ的console配置
            destination = session.createQueue("jyQueue");
            consumer = session.createConsumer(destination);
            while (true) {
                //设置接收者接收消息的时间,为了便于测试,这里定位100s
                TextMessage message = (TextMessage) consumer.receive(100000);

                if (null != message) {
                    System.out.println("收到消息..." + message.getText());
                } else {
                    break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != connection) connection.close();
            } catch (Throwable ignore) {
            }
        }
    }
}

运行发送端:

这里写图片描述

再运行接收端:

这里写图片描述

参考资料:
ActiveMQ实例1–简单的发送和接收消息

ActiveMQ使用教程

目录
相关文章
|
6月前
|
架构师 测试技术 网络性能优化
dpdk课程学习之练习笔记七(vpp环境搭建及plugin demo测试)
dpdk课程学习之练习笔记七(vpp环境搭建及plugin demo测试)
492 0
|
6月前
|
缓存 网络协议 Ubuntu
dpdk课程学习之练习笔记一(接收,发送,arp,icmp功能测试)
dpdk课程学习之练习笔记一(接收,发送,arp,icmp功能测试)
165 0
|
Nacos
按照nacos官方文档做的一个测试的demo,有人做过这块吗?是有啥需要注意的吗?
按照nacos官方文档做的一个测试的demo,有人做过这块吗?是有啥需要注意的吗?
75 1
|
6月前
|
XML SQL Java
ClickHouse【SpringBoot集成】clickhouse+mybatis-plus配置及使用问题说明(含建表语句、demo源码、测试说明)
ClickHouse【SpringBoot集成】clickhouse+mybatis-plus配置及使用问题说明(含建表语句、demo源码、测试说明)
653 0
|
JSON 小程序 Java
微信公众平台测试号——模板消息发送Demo
微信公众平台测试号——模板消息发送Demo
893 0
|
19天前
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
31 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
6月前
|
SQL Java 数据库连接
【Java调试】通过SqlSessionFactory类对象获取mapper文件内的动态SQL在执行时的完整SQL及参数(2种使用方法+测试Demo及结果)
【Java调试】通过SqlSessionFactory类对象获取mapper文件内的动态SQL在执行时的完整SQL及参数(2种使用方法+测试Demo及结果)
177 0
|
6月前
|
SQL 前端开发 Java
Hasor【环境搭建 01】SpringBoot集成Dataway接口配置服务(依赖+配置+数据库数据源初始化+注解添加+demo验证测试)
Hasor【环境搭建 01】SpringBoot集成Dataway接口配置服务(依赖+配置+数据库数据源初始化+注解添加+demo验证测试)
172 0
|
Ubuntu 编译器 网络安全
RK3568开发笔记(七):在宿主机ubuntu上搭建Qt交叉编译开发环境,编译一个Demo,目标板运行Demo测试
在之前的博文中已经搭建好了一个比较完善的ubuntu宿主机,都很完善了但是发现没有Qt交叉编译开发环境,所以还需要搭建一套Qt交叉编译开发环境。
|
JavaScript
html使用vue模板、html引入vue.js-测试demo
html使用vue模板、html引入vue.js-测试demo