MST

星途 面试题库

面试题:消息队列之RabbitMQ的工作模式

请简述RabbitMQ常见的几种工作模式,如简单队列模式、工作队列模式、发布/订阅模式、路由模式和主题模式,并说明每种模式的应用场景。
39.3万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

简单队列模式

  • 模式简述:生产者将消息发送到一个队列,消费者从该队列接收消息。这是最基础的模式,一个生产者对应一个消费者,队列只起到存储消息的作用。
  • 应用场景:适用于简单的消息处理场景,例如简单的日志记录,将日志消息发送到队列,由一个消费者处理记录到文件或数据库等。

工作队列模式

  • 模式简述:一个生产者发送消息到队列,多个消费者从队列中竞争获取消息进行处理。每个消息只会被一个消费者处理,类似于任务分配,多个消费者共同分担任务负载。
  • 应用场景:适用于处理耗时较长的任务,如图片处理、视频转码等。可以启动多个消费者来同时处理任务,提高整体处理效率。

发布/订阅模式

  • 模式简述:生产者将消息发送到交换机(Exchange),交换机不存储消息,而是将消息广播到绑定的所有队列,每个队列的消费者都能收到消息副本。
  • 应用场景:适用于需要将消息广播给多个不同类型的接收者的场景,比如实时数据推送,如股票行情、新闻推送等,不同的客户端(队列消费者)都可以接收到最新消息。

路由模式

  • 模式简述:生产者将消息发送到交换机,交换机根据消息的路由键(routing key)将消息发送到与之绑定的队列。队列在绑定到交换机时需要指定路由键,只有路由键匹配的消息才会被发送到相应队列。
  • 应用场景:当需要根据特定规则将消息发送到特定队列时使用。例如,在订单系统中,根据订单的类型(如普通订单、加急订单)设置不同的路由键,不同的队列处理不同类型的订单。

主题模式

  • 模式简述:它是路由模式的一种扩展,交换机根据主题(Topic)来分发消息。队列在绑定交换机时使用通配符形式的主题进行绑定,消息的路由键与主题匹配规则进行对比,匹配的消息会被发送到相应队列。通配符包括“*”(匹配一个单词)和“#”(匹配零个或多个单词)。
  • 应用场景:适用于更灵活的消息路由场景,例如系统监控,根据不同的监控指标(如CPU使用率、内存使用率等)设置不同的主题,相关的监控处理程序(队列消费者)可以订阅特定主题来接收相关监控数据。