RabbitMQ(SpringAMQP)

news2024/11/27 8:35:02

一.SpringAMQP

Spring的官方基于RabbitMQ提供了一套消息收发的模板工具:SpringAMQP。并且基于SpringBoot对其实现了自动装配

SpringAMQP官方地址:SpringAMQP

SpringAMQP提供的功能:

  • 自动声明队列、交换机及其绑定关系

  • 基于注解的监听器模式,异步接收消息

  • 封装了RabbitTemplate工具,用于发送消息

二.客户端整合SpringAMQP测试

一.导入依赖:
 <!--AMQP依赖,包含RabbitMQ-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
二.rabbitMQ控制台新建一个队列:test.queue

三.在生产者服务模块yml配置MQ地址
spring:
  rabbitmq:
    host:  # 你的虚拟机IP
    port:  # 端口
    virtual-host:  # 虚拟主机
    username:  # 用户名
    password:  # 密码
四.在生产者模块编写测试类,并利用RabbitTemplate实现消息发送
package com.itheima.publisher;

import org.junit.jupiter.api.Test;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.HashMap;
import java.util.Map;

@SpringBootTest
public class SpringAmqpTest {
    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    void testSendMessage2Queue() {
        String queueName = "test.queue";
        String msg = "hello, amqp!";
        rabbitTemplate.convertAndSend(queueName, msg);
    }
}

test.queue队列中此时具有消息

五.在消费者服务模块yml配置MQ地址
spring:
  rabbitmq:
    host:  # 你的虚拟机IP
    port:  # 端口
    virtual-host:  # 虚拟主机
    username:  # 用户名
    password:  # 密码
六.在消费者服务模块编写监听类
package com.itheima.consumer.listeners;

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class SpringRabbitListener {

    @RabbitListener(queues = "test.queue")
    public void listenTestQueueMsg(String msg){
        System.out.println("spring消费者接收到生产者发送给test.queue队列的消息 " + msg);
    }
}
七.启动消费者模块后,运行生产者模块的发送消息测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1492727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UBOOT和LINUX 调试等级设置

比较好的网页 UBOOT LINUX 设置相关 方法1&#xff1a; echo 5 > /proc/sys/kernel/printk 缺点&#xff1a;方法1无法修改在内核启动时的输出信息 方法2&#xff1a; 通过uboot的环境变量bootargs传递打印级别的参数 set bootargs root/dev/nfs init/linuxrc nfsroot19…

TQTT X310 软件无线电设备的FLASH固件更新方法

TQTT X310 除了PCIE口全部兼容USRP 官方的X310&#xff0c;并配备两块UBX160射频子板以及GPSDO。TQTT X310可以直接使用官方的固件&#xff0c;但是不支持官方的固件升级命令。这篇BLOG提供烧写刷新FLASH的方法。 1&#xff0c;使用的是WINDOWS系统。首先给X310接入电源并开机…

MongoDB获评2023年Gartner®云数据库管理系统“领导者”

MongoDB 很荣幸在《2023 年 Gartner 云数据库管理系统 (CDBMS) 魔力象限》报告中被评为领导者。我们相信这一成就让 MongoDB 成为唯一一家连续两年斩获“领导者”称号的纯应用程序数据库服务提供商。 社区及开发者数据平台用户的需求一向是 MongoDB 关注的重点&#xff0c;而这…

音视频开发之旅——音频基础概念、交叉编译原理和实践(LAME的交叉编译)(Android)

本文主要讲解的是音频基础概念、交叉编译原理和实践&#xff08;LAME的交叉编译&#xff09;&#xff0c;是基于Android平台&#xff0c;示例代码如下所示&#xff1a; AndroidAudioDemo 音频基础概念 在进行音频开发的之前&#xff0c;了解声学的基础还是很有必要的。 声音…

Redis之事务(详细解析)

请直接看原文:不能回滚的Redis事务还能用吗 - 知乎 (zhihu.com) ------------------------------------------------------------------------------------------------------------------------------ 1、Redis事务的概念&#xff1a; Redis 事务的本质是一组命令的集合。…

HCIA-Datacom题库(自己整理分类的)_38_IPv6多选【20道题】

1.IPV6地址包含以下哪些类型&#xff1f; 任播地址 组播地址 单播地址 广播地址 2.IPv6有以下哪几种地址&#xff1f; 任播地址 链路本地地址 组播地址 单播地址 广播地址 3.下面关于IPv6描述正确的是&#xff1f; IPv6的地址长度为128bits IPv6的地址长度为64bit…

android插件化开发指南,字节跳动安卓开发面试题

Android进阶延伸点 1、如何进行单元测试&#xff0c;如何保证App稳定 &#xff1f; 参考回答&#xff1a; 要测试Android应用程序&#xff0c;通常会创建以下类型自动单元测试 本地测试&#xff1a;只在本地机器JVM上运行&#xff0c;以最小化执行时间&#xff0c;这种单元测…

1.Zookeeper理论基础

1.Zookeeper的基本概念 是一个分布式应用协调框架 &#xff0c;java编写的。客户端 /服务端 的架构模式。CP设计(一致性&#xff0c;分区容错) 它主要是用来解决分布式应用中经常遇到的一些数据管理问题&#xff0c;如&#xff1a;服务注册服务、状态同步服务、集群管理、分布…

对于爬虫的学习

本地爬取 package MyApi.a08regexdemo;import java.util.regex.Matcher; import java.util.regex.Pattern;public class RegexDemo03 {public static void main(String[] args) {//要求&#xff1a;找出里面所有javaxxString str"Java自从95年问世以来&#xff0c;经历了…

爬虫逆向网站案例

一、相关网页 东方财富人气排行榜 二、查找url 三、寻找curl并复制 四、打开Convert curl commands to code (curlconverter.com) 五、修改并执行代码 import requestscookies {st_si: 73974981954644,st_pvi: 39724919122964,st_sp: 2024-03-05%2018%3A27%3A22,st_inirUrl:…

基于java springboot+redis网上水果超市商城设计和实现以及文档

基于java springbootredis网上水果超市商城设计和实现以及文档 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留…

算法Day04_203.移除链表元素

推荐阅读 算法day01_ 27. 移除元素、977.有序数组的平方 算法day02_209.长度最小的子数组 算法day03_ 59.螺旋矩阵II 目录 推荐阅读203.移除链表元素题目思路解法暴力解法虚拟头结点解法 203.移除链表元素 题目 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删…

深度学习预测分析API:金融领域的Game Changer

&#x1f680; 引言 在这个AI遍地开花的时代&#xff0c;谁能成为金融领域的真正Game Changer&#xff1f;那必然是是深度学习预测分析API。如大脑般高效运转的系统不仅颠覆了传统操作&#xff0c;更是以无与伦比的速度和精度赋予了金融数据以全新的生命。 &#x1f4bc; 广泛…

flutter小程序开发,Android高级工程师必备知识

AWTK 主要特色&#xff1a; 1、跨平台 AWTK 是跨平台的&#xff0c;这有两个方面的意思&#xff1a; AWTK 本身是跨平台的。目前支持的平台有 ZLG AWorks、Windows、Linux、MacOS、嵌入式 Linux、Android、Web 和嵌入式裸系统&#xff0c;可以轻松的移植到各种 RTOS 上。AWT…

缓存一致性:数据库操作与Redis事务回滚

缓存一致性&#xff1a;数据库操作与Redis事务回滚 今日开发需求是“保证数据库操作与Redis缓存操作的一致&#xff0c;在CRUD出错时&#xff0c;保证回滚”。 问题&#xff1a; 1、数据库开启事务&#xff0c;即可在操作失误时&#xff0c;回滚之前的已经做过的操作&#xff…

厚膜功率电阻基板选择

根据电阻器性能规格和应用的全部细节&#xff0c;专业制造商将选择最合适的厚膜功率电阻器基板技术&#xff0c;以适当的成本提供可靠的解决方案。 正确的电阻基板材料选择可以最大限度地提高散热效果并减小元件尺寸。这必须与材料成本和制造过程中的潜在复杂性进行权衡。 基板…

制作Python游戏全过程(汇总2)

目录 前言: 1.基于pygame库创建游戏模块: 1.1引入模块 1.1.1 这是对代码的解释: 1.1.1.1pygame 是一个用于创建游戏的 Python 库。 1.1.1.2plane_sprites 是一个自定义模块&#xff0c;从day6文件夹(也可以是其他的文件夹)中导入&#xff0c;它可能包含了游戏中使用的所有…

Android 消息恢复 - 如何在 Android 上检索已删除的短信

最新调查显示&#xff0c;手机每天发送和接收的短信数以亿计&#xff0c;尤其是Android智能手机。但与此同时&#xff0c;Android消息丢失也每天都在发生。因此&#xff0c;如何恢复Android手机上已删除的短信对于那些在设备中保存了一些重要信息的人来说似乎非常重要。 在这里…

【组合递归】【StringBuilder】Leetcode 17. 电话号码的字母组合

【组合递归】【StringBuilde】Leetcode 17. 电话号码的字母组合 StringBulider常用方法&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;17. 电…

第六篇:人工智能与机器学习技术VS数据迁移(Data Migration)--- 我为什么要翻译介绍美国人工智能科技巨头IAB公司?

(source: 图片来自麻省理工官网&#xff09; IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;…