RabbitMQ的五种模式

87 阅读1分钟

RabbitMQ是基于Erlang语言开发的开源消息通信中间件,支持AMQP、XMPP、SMTP、STOMP通信协议,其架构如下图所示:

image.png

基于以上架构,RabbitMQ消息队列有五种常用的应用模式:

  1. 简单模式

image.png

作用:生产者直接发送消息至队列,消费者直接从队列中获取消息。

  1. 工作队列模式【Work Queues】

image.png

作用:生产者还是直接将消息发送至队列,此时有多个消费者,根据每个消费者处理消息能力的高低进行消费。

  1. 发布订阅模式【Publish/Subscribe】

image.png

作用:生产者将消息发送至交换机,交换机会绑定多个消息队列,此时会将消息群发至每个队列中,让每个队列的消费者都能收到消息。

注意:因为交换机只有消息转发功能,不能存储消息,因此如果交换机未绑定任何消息队列,会导致消息丢失。

  1. 路由模式【Routing】

image.png

作用:生产者将消息发送至交换机,并指定一个路由键(Routing Key)。消费者在创建队列(Queue)时也指定一个或多个路由键,并且将队列绑定到交换机上。只有当消息的路由键与队列绑定的路由键完全匹配时,消息才会被发送到相应的队列中。

  1. 主题模式【Topics】

image.png

作用:生产者将消息发送至交换机,并指定一个路由键(Routing Key)。但是消费者在创建队列时,可以使用一种称为“主题”的模式来绑定队列到交换机。主题模式允许使用通配符来匹配路由键,这样可以更加灵活地控制消息的传递。