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=guest

1.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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:以太坊智能合约开发-《精通以太坊智能合约开发》学习总结实践
下一篇:git-拉取指定 tag 版本/切换指定tag代码

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月06日 23时43分02秒