RabbitMQ由浅到深

阅读: 评论:0

RabbitMQ由浅到深

RabbitMQ由浅到深

一、基本概念及安装

1、基本概念

1.1、Producer生产者

负责生产消息,与Borker消息代理建立连接进行推送消息

1.2、message消息

要发送的消息,并携带上router-key路由键和VHost

1.3、Broker消息代理

接收生产者的消息,根据message中的VHost将消息发给指定虚拟主机

1.4、VHost虚拟主机

类似于一台服务器,可定制dev和prod进行切换。由Vhost指定exchange交换机

1.5、Exchange交换机

将消息根据router-key发送到对应queue队列中,且可以有多台交换机

DirectExchange:满足router-key进行转发(精确匹配)
FanoutExchange:给所有的队列进行转发(无视路由键)
TopicExchange:模糊匹配router-key进行转发(模糊匹配)

1.6、Queue队列

用于存储具体的message消息,并向消费者提供推送服务

1.7、Binding绑定

将Exchange和Queue或Exchange进行绑定,并设置路由键

1.8、Router-key路由键

通过router-key判断message由exchange发送到哪些queue中。
*:表示匹配任意一个单词
#:表示匹配任意一个或多个单词

2、整体流程图

3、linux下安装

docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
# 开机自启
docker update rabbitmq --restart=always

二、使用

1、基础配置

1.1、引入依赖

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

1.2、引入依赖之后,RabbitAutoConfiguration会自动生效

1)、给容器中自动配置了CachingConnectionFactory、RabbitTemplate、AmqpAdmin、RabbitMessagingTemplate
2)、配置类在:RabbitProperties@ConfigurationProperties(prefix = "spring.rabbitmq")public class RabbitProperties {

1.3、编写配置:spring.rabbitmq 信息

spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.virtual-host=/

1.4、开启@Enabled注解

@EnableRabbit
@SpringBootApplication
public class RabbitmqApplication {

2、创建Exchange、Queue、Binding

2.1、引入AmqpAdmin

@Autowired
AmqpAdmin amqpAdmin;

2.2、创建Exchange

// String name【交换机名称】,
// boolean durable【是否持久化】,
// boolean autoDelete【是否自动删除】,
// Map<String, Object> arguments
DirectExchange directExchange = new DirectExchange("java-hello-exchange",true,false);
amqpAdmin.declareExchange(directExchange);
System.out.println("创建Exchange成功");

2.3、创建Queue

//String name, boolean durable, boolean exclusive, boolean autoDelete, Map<String, Object> arguments
Queue queue = new Queue("java-hello-queue",true,false,false);
amqpAdmin.declareQueue(queue);
System.out.println("【java-hello-queue】创建完成!");

2.4、创建Binding

//String destination 【目的地】,
// DestinationType destinationType【目的地类型】,
// String exchange【交换机】,
// String routingKey【路由键】,
// Map<String, Object> arguments
// 将指定的队列绑定到指定的交换机,并设置router-key
Binding binding = new Binding(

本文发布于:2024-01-31 22:14:29,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170671046731735.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:RabbitMQ   浅到深
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23