RabbitMQ -- RabbitMQ消息模式


RabbitMQ – RabbitMQ消息模式

【MQ中间件】RabbitMQ – RabbitMQ消息模式

RabbitMQ入门

默认情况下,rabbitmq是没有安装web端的客户端插件,需要安装才可以生效:

rabbitmq-plugins enable rabbitmq_management

说明:rabbitmq有一个默认账号和密码是:**guest** 默认情况只能在localhost本机下访问,所以需要添加一个远程登录的用户。

安装完毕以后,重启服务即可

systemctl restart rabbitmq-server

一定要记住,在对应服务器(阿里云,腾讯云等)的安全组中开放15672的端口。

RabbitMQ架构

RabbitMQ核心组成

RabbitMQ整体架构

从架构图中可以看出:RabbitMQ架构包含了Provider(生产者)、Exchanges(交换机)、Queues(队列)、Consumer(消费者)。

RabbitMQ的运行流程

RabbitMQ支持的消息模式

简单模式 Simple

简单模式 Simple

在简单模式的消息发送中,不需要特别创建交换机(指定交换机的类型),通过默认的交换机Binding Default exchange,通过指定Routing key为queue name即可向queue name指向的Queue队列发送消息(1对1分发)。

注意:

rabbitmq发送消息一定有一个交换机,如果没有创建交换机,默认使用Default_exchange进行绑定。

默认交换机

默认交换机绑定

工作队列模式 WorkQueues

工作队列模式

工作队列模式也是指定的默认的default默认交换机对多个Queue消费者进行消息的发送,

主要有两种模式:
1、轮询模式分发:一个消费者一条,按均分配,平均分,不会因为哪个消费者内部处理速率较快而减少消息的发送;

​ 轮询模式设置为自动应答

​ 不设置限流

2、公平分发:根据消费者的消费能力进行公平分发,处理快的处理的多,处理慢的处理的少;按劳分配;

​ 设置为手动应答

​ 开启限流

发布订阅模式 Publish/Subscribe

发布订阅模式

发布订阅模式使用fanout类型交换机绑定每一个消费者Queue队列,相当于广播的形式,订阅了该交换机(频道)的Queue都会收到通过交换机发送的来自生产者的消息。

发布订阅交换机

路由模式Routing

路由模式

路由模式的交换机类型是:direct类型

路由模式与发布订阅模式非常相似,也非常容易理解。它只是在发布订阅模式上新增了路由key,通过对应的路由key与对应的Queue进行绑定,这个Queue就被key唯一标识了。

然后当交换机再去发送消息的时候,会在绑定了交换机的Queue中指定对应的路由key进行发送,只有对应路由key为发送key一一对应的才能收到消息。

路由交换机

主题Topic模式

主题模式

主题模式topics相较于路由模式是非常相似的,只不过在路由的基础之上增加了支持模糊匹配的Routing key的形式。

主题模式的交换机类型选择必须是topic类型。

匹配规则:

#:表示0个或者多个,取值范围为[0,+无穷大)

*:表示1个,取值为1,即必须要有一个。

topic模式交换机

参数模式

引用

RabbitMQ – RabbitMQ消息模式](https://www.cnblogs.com/yif0118/p/14665274.html)

rabbitmq文档


文章作者: WangQingLei
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 WangQingLei !
  目录