当前位置: 首页 > news >正文

RabbitMQ 入门(三)SpringAMQP

一、Spring AMQP 简介

        SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。

SpringAmqp的官方地址:https://spring.io/projects/spring-amqp

SpringAMQP提供了三个功能:

- 自动声明队列、交换机及其绑定关系
- 基于注解的监听器模式,异步接收消息
- 封装了RabbitTemplate工具,用于发送消息 

        AMQP,即Advanced Message Queuing Protocol,是用于在应用程序之间传递业务消息的开放标准,该协议与语言和平台无关,更符合微服务中独立性的要求。

        Spring AMQP 是基于AMQP协议定义的一套API规范,提供了模版来发送和接受消息。包含两部分,其中Spring-amqp是基础抽象,spring-rabbit是底层的默认实现。

二、使用Spring AMQP实现基础消息队列功能

基础消息队列模式的模型图:

基础的消息队列模型包括三个角色:

- publisher:消息发布者,将消息发送到队列queue
- queue:消息队列,负责接受并缓存消息
- consumer:订阅队列,处理队列中的消息

使用Spring AMQP实现基础消息队列功能

流程如下:
1.在父工程中引入spring-amqp的依赖
2.在publisher 服务中利用RabbitTemplate发送消息到 simple.queue 这个队列
3.在consumer服务中编写消费逻辑,绑定 simple.queue 这个队列

步骤一:在父工程中引入依赖

<!--AMQP依赖,包含RabbitMQ-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

步骤二:在publisher中编写测试方法,向 simple.queue发送消息

1).在publisher服务 中编写application.yml,添加mq连接信息:

spring:rabbitmq:host: 192.168.150.101 # 主机名port: 5672 # 端口virtual-host: / # 虚拟主机username: rbmq # 用户名password: 123456 # 密码

2).在publisher服务中编写测试类SpringAmqpTest,并利用RabbitTemplate实现消息发送:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testpublic void testSimpleQueue() {// 队列名称String queueName = "simple.queue";// 消息String message = "hello, spring amqp!";// 发送消息rabbitTemplate.convertAndSend(queueName, message);}
}

步骤三:在consumer服务中编写消费逻辑,绑定 simple.queue 这个队列

 1.在consumer服务中编写 application.yml,添加mq连接信息;

spring:rabbitmq:host: 192.168.150.101 # 主机名port: 5672 # 端口virtual-host: / # 虚拟主机username: rbmq # 用户名password: 123456 # 密码


 2.在consumer服务中新建一个类,编写消费逻辑

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;@Component
public class SpringRabbitListener {@RabbitListener(queues = "simple.queue")public void listenSimpleQueueMessage(String msg) throws InterruptedException {System.out.println("spring 消费者接收到消息:【" + msg + "】");}
}

步骤四:运行springboot程序,测试发送接收消息。成功

http://www.lryc.cn/news/459094.html

相关文章:

  • celery 项目中mysql 数据库连接数耗尽事故记录
  • Python数据分析-Scipy科学计算法
  • 【Python Django + Vue】酒店在线预订系统:用技术说话!
  • 禁用微软的windos安全中心
  • 2.html编辑器介绍
  • 树莓派应用--AI项目实战篇来啦-17.YOLOv8目标检测-安全帽检测
  • git-secret介绍
  • 【实战】Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP
  • 计算机专业大一课程:线性代数探秘
  • vscode写markdown插入图片视频并放在指定目录
  • 鸿蒙富文本显示
  • 手写mybatis之细化XML语句构建器,完善静态SQL解析
  • 使用Milvus和Llama-agents构建更强大的Agent系统
  • Python 工具库每日推荐【Arrow】
  • Win10 安装 Redis 数据库
  • 使用springboot生成war包
  • 见微知著:OpenEuler系统启动流程
  • 支持向量机-笔记
  • 研发线上事故风险解读之缓存篇
  • JavaScript前端开发技术
  • H.264 编码参数优化策略
  • C++ 游戏开发技术选型指南
  • 基于Python Django的在线考试管理系统
  • 《Java基础》变量和数据类型
  • FLINK内存管理解析,taskmanager、jobmanager
  • 【AI论文精读13】RAG论文综述2(微软亚研院 2409)P5-可解释推理查询L3
  • 优达学城 Generative AI 课程3:Computer Vision and Generative AI
  • UE5 C++ 通过绑定编辑器事件实现控制柄顶点编辑
  • 云计算ftp 服务器实验
  • node.js服务器基础