spring boot-整合RabbitMq(RabbitMq基础)
发布日期:2021-06-29 22:26:08
浏览次数:2
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月06日 23时43分02秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
新手使用VUE做菜单/组织结构树
2021-07-03
简易的搭建ipv6网络环境iphone
2021-07-03
jquery的jquery.page分页插件使用方法
2021-07-03
pom.xml报unknown error
2021-07-03
记录一个小问题Invalid bound statement (not found)
2019-04-30
spring-admin使用过程中的一个小问题
2019-04-30
个人关于MYSQL的锁、事务、隔离级别的一些理解
2019-04-30
记录下本人对分布式session问题的理解与解决方案
2019-04-30
记录下本人对前后端token处理的理解
2019-04-30
mybatis-plus分页使用
2019-04-30
RedisTemplet和StringRedisTemplet的区别和坑
2019-04-30
java字符串排序忽略大小写
2019-04-30
java中的NIO和IO
2019-04-30
java的spi及jdbc源码解读
2019-04-30
缓存穿透、缓存击穿、缓存雪崩区别和解决方案
2019-04-30
谈谈服务雪崩
2019-04-30
TOMCAT调优
2019-04-30
谈谈TOMCAT原理和机制
2019-04-30
事务和memory表
2019-04-30
程序员生涯的起步
2019-04-30