RabbitMQ快速上手及入门

news/2025/2/5 16:17:37/

概念

概念:

  • publisher:生产者,也就是发送消息的一方

  • consumer:消费者,也就是消费消息的一方

  • queue:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理

  • exchange:交换机,负责消息路由。生产者发送的消息由交换机决定投递到哪个队列。

  • virtual host:虚拟主机,起到数据隔离的作用。每个虚拟主机相互独立,有各自的exchange、queue

helloworld快速上手

启动mq服务

brew services start rabbitmq

浏览器打开:http://localhost:15672/

可以看到成功进入

Username和Password均为guest

引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>

配置文件

spring:rabbitmq:host: localhost #域名port: 5672 #端口username: guest #用户名password: guest #密码

生产者定义

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.QueueBinding;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
@RequiredArgsConstructor
@Slf4j
public class SpringRabbitListener {@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "test.queue", durable = "true"),exchange = @Exchange(name = "test.direct"),key = "test.key"))public void listenPaySuccess(String msg){System.out.println("消费者接收到topic.queue的消息:【" + msg + "】");}
}

消费者定义

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;@SpringBootTest
public class SpringAmqtest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testpublic void testQueue(){rabbitTemplate.convertAndSend("test.direct","test.key", "测试下发送消息");}
}

启动springboot服务

控制台消息

可以看到生产者发送消息且成功被消费者消费

参考资料:

黑马RabbitMQ


http://www.ppmy.cn/news/1569548.html

相关文章

一篇关于高等数理统计结合机器学习论文的撰写(如何撰写?)

前言 在大学或者研究生阶段&#xff0c;大家可能都会遇到一个问题就是&#xff0c;在上高等数理统计课程时&#xff0c;老师总会让同学们写一些大作业&#xff0c;比如论文什么的&#xff0c;接下来我会从计算机领域的角度&#xff0c;带领大家开启一篇从0到1的高等数理统计文…

DeSpread:Berachain 生态特点探讨与核心项目一览

撰文&#xff1a;DeSpread 引 言 Berachain 是一个 Layer 1 网路&#xff0c;以 PoL&#xff08;Proof of Liquidity&#xff09;共识机制为特色&#xff0c;使验证者、流动性提供者和协议的利益一致。目前&#xff0c;Berachain 正在进行第二个测试网路「bArtio Testnet」&a…

HTML5 技术深度解读:本地存储与地理定位的最佳实践

系列文章目录 01-从零开始学 HTML&#xff1a;构建网页的基本框架与技巧 02-HTML常见文本标签解析&#xff1a;从基础到进阶的全面指南 03-HTML从入门到精通&#xff1a;链接与图像标签全解析 04-HTML 列表标签全解析&#xff1a;无序与有序列表的深度应用 05-HTML表格标签全面…

使用LLaMA-Factory对AI进行认知的微调

使用LLaMA-Factory对AI进行认知的微调 引言1. 安装LLaMA-Factory1.1. 克隆仓库1.2. 创建虚拟环境1.3. 安装LLaMA-Factory1.4. 验证 2. 准备数据2.1. 创建数据集2.2. 更新数据集信息 3. 启动LLaMA-Factory4. 进行微调4.1. 设置模型4.2. 预览数据集4.3. 设置学习率等参数4.4. 预览…

关于19C的审计日志

最近在用19C做测试时&#xff0c;发现了个问题&#xff0c;即在audit_trail 为DB的情况下&#xff0c;模拟用户登录登出过程&#xff0c;但是 aud$ 表里没记录。 查阅资料得知: 12.1.0.1 开始情况使用的 统一审计&#xff08;Unified Auditing&#xff09;&#xff0c;默认开…

数据库索引:秋招面试中的经典高频题目 [特殊字符](索引原理/操作/优缺点/B+树)

在数据库的秋招面试中&#xff0c;索引&#xff08;Index&#xff09;是一个经典且高频的题目。索引的作用类似于书中的目录&#x1f4d6;&#xff0c;它能够显著加快数据库查询的速度。本文将深入探讨索引的概念、作用、优缺点以及背后的数据结构&#xff0c;帮助你从原理到应…

请解释 Java 中的 IO 和 NIO 的区别,以及 NIO 如何实现多路复用?

Java中的IO和NIO是两种不同的输入输出处理方式&#xff0c;它们在设计理念、实现方式、性能特点和应用场景上有着显著的差异。 下面我将详细解释Java中的IO和NIO的区别&#xff0c;以及NIO如何实现多路复用&#xff0c;并提供一些日常开发中的使用建议和注意事项。 Java中的I…

仿真设计|基于51单片机的颅内压检测报警系统

目录 具体实现功能 设计介绍 51单片机简介 资料内容 仿真实现&#xff08;protues8.7&#xff09; 程序&#xff08;Keil5&#xff09; 全部内容 资料获取 具体实现功能 &#xff08;1&#xff09;实时检测成人及儿童的颅内压&#xff0c;LCD1602第一行显示儿童的颅内…