
RabbitMQ 架构流程图:生产者 → 交换机 → 队列 → 消费者
一、6 大核心组件(必背)
1. Producer(生产者)
发送消息的一方
例:订单服务、支付服务
2. Consumer(消费者)
接收并处理消息的一方
例:库存服务、短信服务
3. Queue(队列)
真正存储消息的地方
持久化、排序、等待被消费
特点:先进先出 FIFO
4. Exchange(交换机)—— 核心!
消息路由中转站
生产者不直接发队列,先发给交换机
根据路由规则转发到对应队列
5. RoutingKey(路由键)
生产者发消息时带的 key
交换机根据它匹配队列
6. Binding(绑定)
交换机 + 队列 + BindingKey 的绑定关系
决定消息去哪
二、交换机 4 种类型(高频考点)
1. direct(直连模式)
RoutingKey 完全匹配
一对一精准发送
2. topic(主题模式)
通配符匹配
user.# 匹配 user.add、user.delete 等
3. fanout(广播模式)
无视 RoutingKey
发给所有绑定队列
4. headers(头信息模式)
很少用,根据消息头匹配
三、消息完整流转流程
- 生产者创建消息,指定 RoutingKey
- 消息发送到 交换机
- 交换机根据 绑定规则 路由到队列
- 消息存在队列里等待
- 消费者监听并消费消息
四、深挖加分
1. 交换机和队列的关系?
多对多
一个交换机可绑定多个队列
一个队列可被多个交换机绑定
2. 为什么要有交换机?
灵活路由!
支持广播、主题、定向分发
解耦生产者和队列
3. 消息如何保证不丢失?
生产者确认 + 队列持久化 + 消费者手动ACK
10 秒速记
✅ 生产者发消息
✅ 交换机做路由(4种类型)
✅ 队列存消息
✅ 消费者监听处理
✅ 核心:生产者 → 交换机 → 队列 → 消费者
MiaoAll