RabbitMQ – RabbitMQ消息模式
【MQ中间件】RabbitMQ – RabbitMQ消息模式
RabbitMQ入门
默认情况下,rabbitmq是没有安装web端的客户端插件,需要安装才可以生效:
rabbitmq-plugins enable rabbitmq_management
说明:rabbitmq有一个默认账号和密码是:**guest
** 默认情况只能在localhost本机下访问,所以需要添加一个远程登录的用户。
安装完毕以后,重启服务即可
systemctl restart rabbitmq-server
一定要记住,在对应服务器(阿里云,腾讯云等)的安全组中开放15672
的端口。
RabbitMQ架构
从架构图中可以看出:RabbitMQ架构包含了Provider(生产者)、Exchanges(交换机)、Queues(队列)、Consumer(消费者)。
RabbitMQ支持的消息模式
简单模式 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,即必须要有一个。
参数模式
引用
RabbitMQ – RabbitMQ消息模式](https://www.cnblogs.com/yif0118/p/14665274.html)