MST

星途 面试题库

面试题:消息队列之RocketMQ消息路由策略基础

在RocketMQ架构中,简述消息路由策略的基本原理,并说明Topic、Queue与消息路由之间的关系。
43.8万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

消息路由策略基本原理

  1. 生产者端路由:生产者发送消息时,根据指定的路由算法,从Topic对应的队列集合中选择一个队列。常见的路由算法有轮询、随机等。生产者在发送消息时会获取Topic的路由信息,包括该Topic有哪些队列以及这些队列分布在哪些Broker上。然后基于特定算法在这些队列中做出选择,将消息发送到选中的队列。
  2. Broker端路由:Broker接收到消息后,根据Topic和队列信息进行存储和转发。Broker维护着Topic和队列的映射关系,知道每个Topic下有哪些队列,当消息到达Broker时,会根据消息的Topic找到对应的队列,并将消息存储到该队列中。在消息消费时,Broker根据消费者的请求,从相应队列中拉取消息给消费者。

Topic、Queue与消息路由之间的关系

  1. Topic:是消息的逻辑分类,类似一个主题标签。生产者发送消息和消费者订阅消息都是基于Topic进行的。一个Topic可以有多个Queue,通过这种方式来实现消息的并行处理和负载均衡。例如,一个电商订单系统中,可以有“order_created”这样的Topic来表示订单创建的消息。
  2. Queue:是Topic的物理分区,一个Topic由多个Queue组成。每个Queue是一个独立的FIFO(先进先出)队列,Queue的设计使得消息可以在不同Broker上分布存储,提高了系统的吞吐量和可扩展性。例如,“order_created”这个Topic可以有4个Queue,分布在不同的Broker上。
  3. 关系总结:消息路由基于Topic找到对应的Queue集合,然后通过路由算法选择其中一个Queue进行消息发送或接收。Topic定义了消息的类别,Queue则为消息提供了具体的存储和并行处理单元,两者共同构成了消息路由的基础。