activemq的安装和使用【2】activemq的queue模式

2023-05-16

activemq共有两种模式,一是点对点,一是发布和订阅,不管是哪种方式,都包含两个角色,一是消息的生产者,一是消息的消费者。点对点是消息只能被一个消费者收到,消息必达。本文将阐述使用java完成queue模式的应用。

1、前提约束

  • 已经安装和启动activemq https://www.jianshu.com/p/47d6d824ad50

2、使用idea创建一个maven的项目

https://www.jianshu.com/p/042073b7710b

3、修改pom.xml

在pom.xml中加入以下依赖:

        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <version>5.15.3</version>
        </dependency>

4、创建一个消息的生产者

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class P2PProducer {

    public static void main(String[] args) throws Exception{
        //1.创建连接工厂
        ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory("tcp://192.168.100.192:61616");
        //2.获取连接
        Connection connection = activeMQConnectionFactory.createConnection();
        //3.启动连接
        connection.start();
        //4.获取session  (参数1:是否启动事务,参数2:消息确认模式)
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.创建队列对象
        Queue queue = session.createQueue("my-queue");
        //6.创建消息生产者
        MessageProducer producer = session.createProducer(queue);
        //7.创建消息
        TextMessage textMessage = session.createTextMessage("ali");
        //8.发送消息
        producer.send(textMessage);
        //9.关闭资源
        producer.close();
        session.close();
        connection.close();
    }
}

5、启动,查看管理界面

依次点击Manage ActiveMQ broker->queues,我们看到自己创建的queue,此时,消息虽已进入队列,但还没有被消费。

 

6、创建一个消息的消费者

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class P2PConsumer {
    public static void main(String[] args)throws Exception {
        //1.创建连接工厂
        ConnectionFactory connectionFactory=new ActiveMQConnectionFactory("tcp://192.168.100.192:61616");
        //2.获取连接
        Connection connection = connectionFactory.createConnection();
        //3.启动连接
        connection.start();
        //4.获取session  (参数1:是否启动事务,参数2:消息确认模式)
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.创建队列对象
        Queue queue = session.createQueue("my-queue");
        //6.创建消息消费
        MessageConsumer consumer = session.createConsumer(queue);

        //7.监听消息
        consumer.setMessageListener(new MessageListener() {
            public void onMessage(Message message) {
                TextMessage textMessage=(TextMessage)message;
                try {
                    System.out.println("接收到消息:"+textMessage.getText());
                } catch (JMSException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
        //8.等待键盘输入
        System.in.read();
        //9.关闭资源
        consumer.close();
        session.close();
        connection.close();
    }
}

7、启动,再次查看管理界面

依次点击Manage ActiveMQ broker->queues,我们看到自己创建的queue,此时,消息已经被消费。

 

至此,我们完成了activemq的queue模式的测试。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

activemq的安装和使用【2】activemq的queue模式 的相关文章

  • 达梦数据库字符集

    初次接触达梦 xff0c 记录一些小知识 达梦数据库采用的字符集是在初始化数据库时指定的 xff0c 属于全局性的参数 xff0c 后续不能更改 其支持的字符集选项有 0表示GB18030 xff0c 1表示UTF 8 xff0c 2代表韩
  • efi variables are not supported on this system-(已解决)

    1 如果用的是VMware 则在虚拟机里设置这个选项 2 如果是实体机执行 ls sys firmware efi efivars 查看电脑是否支持efi 并看能不能在bios里修改一下
  • IDEA拉取远程分支(获取最新分支)

    第一步 xff1a 第二步 xff1a
  • 【ChatGPT】帮你写周报,这是实在太干货了,老板都看不下去了

    说到写周报不少小伙伴会觉得是一件头疼的事情 xff0c 一周摸鱼了不到7天 xff0c 周报咋写 xff0c 掰指头都能数清的事在邮件中更是寥寥数字 xff0c 自己看着不舒服 xff0c 老板看着更是头大 xff0c 要不要搞掉他的想法油
  • Archlinux中普通用户无法使用root设置的zsh主题样式

    Archlinux中普通用户无法使用root设置的zsh主题样式 问题分析解决方法1 使用git到github上下载 注意要在普通用户下 2 查看当前主题3 查看可用主题 xff0c 选取下想用的主题4 编辑配置文件 xff0c 更换你想用
  • ArchLinux安装完成登陆时出现login incorrect错误

    汇总下来出现该错误有以下几种原因 1 输入密码时 xff0c 检查numlock是否开启 xff1b 使用字母上方的数字键进行输入 由于安装的linux键盘布局为us键盘布局 xff0c 小键盘在开机时 xff0c 默认为关闭状态 2 有人
  • VirtualBox中如何释放鼠标

    相信在使用VritualBox的小伙伴中 xff0c 有发现他释放鼠标的方式和VMware不一样 xff0c 其实也很简单 xff0c 并且VritualBox也有说明释放的方式 按键盘右边的Ctrl键就可以
  • c++中sizeof()的详细用法

    sizeof 定义 sizeof是一个操作符 xff08 operator xff09 其作用是返回一个对象或类型所占的内存字节数 sizeof 语法 sizeof有三种语法形式 xff1a 1 sizeof object sizeof 对
  • Linux下如何查找特定的文件

    使用 find命令 语法 xff1a find path options params 作用 xff1a 在指定目录下查找文件 常用用法示例 xff1a find name file java xff1a 精确查找文件 xff08 在根目录
  • Ubuntu16.04使用教程(一)——安装

    Ubuntu16 04使用教程 xff08 一 xff09 安装 前言 最近我同学需要用Ubuntu16 04做项目 xff0c 可是她之前从没用过 xff0c 于是我在这里写一些我常用的简单的操作吧 本节将教你如何在你的Windows电脑
  • Linux环境下QT开发(三)——QT编程基础

    Linux环境下QT开发 xff08 三 xff09 QT编程基础 在上一篇文章中 xff0c 我们完成了第一个程序 HelloWorld 在这篇文章中 xff0c 我将介绍一些QT编程基础知识 xff0c 让我们由此进入QT的世界 xff
  • Kali学习笔记(三)——Kali2020.1安装从入门到入土

    Kali学习笔记 xff08 三 xff09 Kali2020 1安装从入门到入土 我的笔记本是神舟战神Z7M KP7GT xff0c 配置如下 xff1a 项目配置CPU酷睿i7内存8GB显卡1050Ti固态硬盘128GB机械硬盘1TB
  • VP9编码(1)-- 简介

    VP9编码 xff08 1 xff09 简介 VP9是谷歌基于VP8发布的新版视频编解码标准 xff0c 主要对标H265 H264标准 youtube目前采用VP9标准 本系列博客为博主学习笔记 xff0c 翻译自 vp9 bitstre
  • c++学习之路

    3 19 内存分区模型 内存四区意义 不同区域存放的数据 xff0c 赋予不同的生命周期 给我们更大的灵活编程 程序exe 运行前分为 代码区和全局区 xff1b 运行后分为 栈区和堆区 1 代码区 存放CPU执行的机器指令 存放函数体的二
  • RTSP协议(2)——摘要(RFC2326)

    RTSP协议 xff08 2 xff09 摘要 实时流协议 xff08 RTSP xff09 是一种应用级协议 xff0c 用于控制实时数据的传输 RTSP提供了一个可扩展的框架 xff0c 以实现实时数据 xff08 如音频和视频 xff
  • 简道云-第3章-表单

    title 简道云 第3章 表单 date 2022 06 11 09 07 10 tags 简道云 categories 简道云 简道云 第3章 表单 背景介绍 简道云三个基本项目表单 流程以及仪表 关于它们的介绍可以参照官方文档表单 v
  • 搭建Hexo博客-第2章-Hexo基本用法

    搭建Hexo博客 第2章 Hexo基本用法 搭建Hexo博客 第2章 Hexo基本用法 搭建Hexo博客 第2章 Hexo基本用法 大家好 xff0c 在上一篇文章中 xff0c 我们学习了 Git GitHub 和 Coding 的基本用
  • 群晖-第5章-Docker安装gitlab

    群晖 第5章 Docker安装gitlab 群晖安装gitlab可以只在内网访问 xff0c 也就不需要前面几章的内容 xff0c 但是我这个是通过外网HTTPS访问的 参考 xff1a Nas码农篇 xff1a 群晖Docker安装Git
  • 小应用记账本-第1章-需求分析

    小应用记账本 第1章 需求分析 这个专题是开发一个小应用 记账本的记录 一 项目背景 我从21年开始用挖财记账 xff0c 挖财记账最初可以免费导出账本的 xff0c 但是后来变成了会员收费功能 xff0c 到23年年初 xff0c 有一次
  • 小应用记账本-第2章-数据库设计

    小应用记账本 第2章 数据库设计 在上一章 小应用记账本 第1章 需求分析 已经罗列了我们需要的功能 xff0c 因为很简单 xff0c 所以这一章就来设计数据库吧 Account表 xff1a 账户表 字段名类型说明取值idint账户id

随机推荐