spring boot-整合RabbitMq(RabbitMq基础)
发布日期:2021-06-29 22:26:08
浏览次数:3
分类:技术文章
本文共 2882 字,大约阅读时间需要 9 分钟。
文章目录
一、RabbitMq基础
RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。
-
Exchange
交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。 Exchange有4种类型: direct(默认), fanout, topic, 和headers,不同类型的Exchange转发消息的策略有所区别。 -
Queue
消息队列,用来保存消息直到发送给消费者。它是消息的容器,也是消息的终点。一个消息可投入一个或多个队列。消息一直在队列里面,等待消费者连接到这个队列将取走。 -
Binding
绑定,用于消息队列和交换器之间的关联。一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表。Exchange 和Queue的绑定可以是多对多的关系。
总结: 创建 Exchange 利用路由键,将Exchange 和Queue的绑定,消费端 自己从自己指定的队列拿取数据(消费端需指定队列获取消息)。消息发送端一般需要指定exchange和routingKey。
生产者发送消息到交换机并指定一个路由key,消费者队列绑定到交换机时要制定路由key(key匹配就能接受消息,key不匹配就不能接受消息)
二、Springboot 整合RabbitMq
1. spring boot 安装配置rabbitMq
Spring Boot 2.X - Spring Boot整合AMQP之RabbitMQ
参考URL: https://www.pianshen.com/article/4074353758/1.1 导入maven依赖
org.springframework.boot spring-boot-starter-amqp
1.2 添加配置文件信息
在application.properties文件当中引入RabbitMQ基本的配置信息
#对于rabbitMQ的支持
spring.rabbitmq.host=127.0.0.1 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest1.3 编写RabbitConfig
启用Rabbit注解
@SpringBootApplication@EnableRabbit // 开启基于注解的RabbitMQ模式public class SpringBootAmqpApplication { public static void main(String[] args) { SpringApplication.run(SpringBootAmqpApplication.class, args); }}
1.4 新建一个AmqpController,用于发送消息
@RestControllerpublic class AmqpController { private final RabbitTemplate rabbitTemplate; public AmqpController(RabbitTemplate rabbitTemplate) { this.rabbitTemplate = rabbitTemplate; } private final static String SUCCESS = "success"; /** * 单点 * @param msg * @return */ @GetMapping("/direct") public String direct(String msg){ rabbitTemplate.convertAndSend("amq.direct", "xudc", msg); return SUCCESS; } @GetMapping("/fanout") public String fanout(String msg) { rabbitTemplate.convertAndSend("amq.fanout", "", msg); return SUCCESS; } @GetMapping("/topic") public String topic(String msg){ rabbitTemplate.convertAndSend("amq.topic", "xudc.#", msg); return SUCCESS; }}
1.5 编写消息监听者
@Componentpublic class AmqpListener { @RabbitListener(queues = "xudc") public void receive1(String message) { System.err.println("xudc -- receive1接收到消息:" + message); } @RabbitListener(queues = "xudc.book") public void receive2(String message) { System.err.println("xudc.book -- receive2接收到消息:" + message); } @RabbitListener(queues = "andy") public void receive3(String message) { System.err.println("andy -- receive3接收到消息:" + message); }}
三、参考
SpringBoot集成rabbitmq(一)
参考URL: https://www.cnblogs.com/sword-successful/p/10295561.html Spring Boot 整合 AMQP 参考URL: https://blog.csdn.net/kangguang/article/details/104553352 Spring Boot 2.X - Spring Boot整合AMQP之RabbitMQ 参考URL: https://www.pianshen.com/article/4074353758/转载地址:https://docker.blog.csdn.net/article/details/109853596 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月07日 20时04分23秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
用MATLAB实现m序列的生成(MATLAB 2021a适用)
2019-04-30
MATLAB函数备忘(定期更新)
2019-04-30
13行MATLAB代码实现网络爬虫 爬取NASA画廊星图
2019-04-30
MATLAB指定路径保存图片方法
2019-04-30
Python一键获取微信推送封面图
2019-04-30
油猴脚本:微信推送浏览功能拓展
2019-04-30
JavaScript DOM对象操作详解
2019-04-30
JavaScript 表单操作与MD5加密
2019-04-30
jQuery 选择器与鼠标事件详解(附实例)
2019-04-30
Mcmod模组下载脚本
2019-04-30
intelliJ IDEA配置html文件在浏览器打开的快捷键
2019-04-30
(Ver 0.5)油猴脚本:微信推送浏览功能拓展
2019-04-30
JavaScript 点击文字复制到剪切板
2019-04-30
(Ver 1.0)油猴脚本:微信推送浏览功能拓展
2019-04-30
大数据技术之Hadoop(入门)概述、运行环境搭建、运行模式
2019-04-30
大数据技术之Hadoop(HDFS)概述、Shell操作、API操作、读写流程、工作机制
2019-04-30
大数据技术之Hadoop(MapReduce)概述、序列化
2019-04-30
ubuntu 18.04 编译octomap
2019-04-30
C++ Core Guidelines 笔记01
2019-04-30
C++ Core Guideline 笔记02
2019-04-30