一架梯子,一头程序猿,仰望星空!
RabbitMQ面试题 > 内容正文

RabbitMQ面试题:RabbitMQ有几种工作模式?


RabbitMQ有几种工作模式?

根据交换机类型和消费者数量的不同,RabbitMQ有下面几种工作模式:

简单队列

一个消息生产者,一个消息消费者

说明:
P 代表生产者 , C 代表消费者,红色代表队列。

Work队列

一个生产者,多个消费者

说明:
P 代表生产者 , C1、C2 代表消费者,红色代表队列。

发布订阅模式

发布订阅模式,就是一个生产者发送的消息会被多个消费者获取,因为一条消息会被多个消费者分别消费处理,所以也叫广播模式、一对多模式。


说明:

  • P 代表生产者 , C1、C2 代表消费者,红色代表队列, X代表交换机(fanout Exchange)。
  • 交换机(Exchange)负责将消息转发至绑定交换机的所有队列。
  • 可以定义多个队列,分别绑定同一个交换机。
  • 每个队列可以有一个或者多个消费者。

路由模式

RabbitMQ路由模式大体上跟发布订阅模式一样,区别在于发布订阅模式将消息转发给所有绑定的队列,而路由模式将消息转发给那个队列是根据路由匹配情况决定的。

说明:

  • P 代表生产者 , C1、C2 代表消费者,红色代表队列,X 代表交换机。
  • 交换机类型为direct
  • direct交换机转发消息逻辑:将消息中的Routing key与该Exchange关联的所有Binding中的Routing key进行比较,如果相等,则发送到该Binding对应的Queue中。

主题模式

RabbitMQ主题模式(Topic)跟路由模式类似,区别在于主题模式的路由匹配支持通配符模糊匹配,而路由模式仅支持完全匹配。


说明:
1、P 代表生产者 , X 代表交换机,红色Q1、Q2代表队列,C1、C2 代表消费者。
2、交换机类型为topic
3、topic交换机转发消息逻辑:将消息中的Routing key与该Exchange关联的所有Binding中的Routing key进行模糊匹配,如果匹配,则发送到绑定的Queue中。

推荐:详情请阅读RabbitMQ教程


推荐教程