1. 介绍
MQ 是一种应用程序对应用程序的通信方法。在项目中,可以将一些无需及时返回且耗时的操作提取出来,使用MQ,进行异步处理。比如:主播提交需要审核的信息...
2. 概念模型
-
消息模型
消费者订阅某个消息队列,生产者向队列里面添加消息
消息模型 -
基本概念
RabbitMq相关概念
基本概念 | 解释说明 |
---|---|
publisher | 消息的生产者 |
exchange | 用来接受生产者发送的消息,并且将消息分发给对应的queue |
binding | Exchange找到queue的路由规则 |
Queue | 消息的容器,也是消息的终点;消息在此等候消费者来获取 |
Connection | TCP 连接 |
Channel | 信道。信道是建立在真实TCP连接上的虚拟连接。AMQP 命令都是通过信道发出去的,不管是发布消息、订阅队列还是接收消息,这些动作都是通过信道完成。这样做的主要目的是复用TCP连接,节约连接成本 |
Consumer | 消息消费者 |
Vhost | 虚拟主机,每个 vhost 本质上就是一个 mini 版的 RabbitMQ 服务器,拥有自己的队列、交换器、绑定和权限机制 |
Broker | 服务器实体 |
3. 消息路由
生产者把消息发布到 Exchange 上,消息最终到达队列并被消费者接收,而 Binding 决定交换器的消息应该发送到那个队列。
Exchange在分发消息时,根据不同的类型,采用不同的分发策略:
-
direct:路由键和binding键要完全一致
direct分发 - fanout :广播发送
-
topic :交换器通过模式匹配分配消息
topic
topic 模式下可以使用统配符表示bingKey:'*'表示匹配一个单词, '#'则表示匹配没有或者多个单词
网友评论