目录
[1. 1简单模式(Simple)](#1. 1简单模式(Simple))
[1.2 工作队列模式(Work Queues)](#1.2 工作队列模式(Work Queues))
[1.3 发布 / 订阅模式(Publish/Subscribe)](#1.3 发布 / 订阅模式(Publish/Subscribe))
[4. 路由模式(Routing)](#4. 路由模式(Routing))
[5. 主题模式(Topics)⭐ 最常用](#5. 主题模式(Topics)⭐ 最常用)
[6. 头部模式(Headers)](#6. 头部模式(Headers))
[7. RPC 模式(Remote Procedure Call)](#7. RPC 模式(Remote Procedure Call))
[7 种模式对比速查表](#7 种模式对比速查表)
1.七种工作模式
1. 1简单模式(Simple)
核心
最简单的一对一模式 :1 个生产者 → 1 个队列 → 1 个消费者无交换机,直接使用默认交换机(
AMQP default)角色
- 生产者:发送消息到队列
- 队列:存储消息
- 消费者:监听并消费消息
适用场景
单一功能的简单业务,如:单线程日志记录、简单通知
1.2 工作队列模式(Work Queues)
核心
一对多竞争消费 :1 个生产者 → 1 个队列 → 多个消费者 消息只能被一个消费者消费,实现负载均衡
关键特性
- 默认:轮询分发(平均分配消息)
- 配置后:能者多劳(处理快的消费者多消费)
适用场景
任务异步处理、流量削峰,如:订单处理、视频转码
1.3 发布 / 订阅模式(Publish/Subscribe)
核心
广播模式 :1 个生产者 → 1 个交换机(fanout) → 多个队列 → 多个消费者所有绑定的消费者都能收到全量消息
关键
交换机类型:
fanout(扇形 / 广播)不处理路由键,直接群发所有队列适用场景
全员通知、多系统同步数据,如:公告推送、缓存更新
4. 路由模式(Routing)
核心
定向分发 :生产者 → direct 交换机 → 按路由键 匹配队列只有路由键完全匹配的消费者才能收到消息
关键
交换机类型:
direct(直连)必须指定routing key绑定适用场景
按类型筛选消息,如:错误日志单独推送、订单状态定向通知
5. 主题模式(Topics)⭐ 最常用
核心
模糊匹配路由 :生产者 → topic 交换机 → 通配符路由键支持模糊匹配,比路由模式更灵活
通配符规则
*:匹配一个单词#:匹配零个或多个 单词单词分隔符:.示例
路由键:
user.order.pay匹配:user.*.*、user.#、#.pay适用场景
复杂业务筛选,如:按用户 / 商品 / 订单类型精准推送
6. 头部模式(Headers)
核心
不使用路由键 ,通过消息头(headers) 匹配队列基于键值对匹配,性能较差,极少使用
关键
交换机类型:
headers匹配规则:x-match(all/any)适用场景
极特殊的复杂匹配需求(优先用主题模式替代)
7. RPC 模式(Remote Procedure Call)
核心
远程调用模式 :客户端发送消息 → 服务端处理 → 原路返回结果实现同步调用,像调用本地方法一样调用远程服务
- 客⼾端发送消息到⼀个指定的队列, 并在消息属性中设置replyTo字段, 这个字段指定了⼀个回调队列, ⽤于接收服务端的响应.
- 服务端接收到请求后, 处理请求并发送响应消息到replyTo指定的回调队列
- 客⼾端在回调队列上等待响应消息. ⼀旦收到响应,客⼾端会检查消息的correlationId属性,以 确保它是所期望的响应
流程
- 客户端发送请求(带唯一 ID)
- 服务端消费处理
- 服务端发送响应到回调队列
- 客户端接收响应
适用场景
需要同步等待结果的场景,如:支付校验、数据查询
7 种模式对比速查表
| 模式 | 交换机类型 | 核心特点 | 消息消费方式 | 推荐度 |
|---|---|---|---|---|
| 简单模式 | 默认 | 一对一 | 一个消费者消费 | ⭐⭐ |
| 工作队列 | 默认 | 一对多竞争 | 一个消费者消费 | ⭐⭐⭐⭐ |
| 发布订阅 | fanout | 广播 | 所有消费者消费 | ⭐⭐⭐ |
| 路由模式 | direct | 精准路由键匹配 | 匹配的消费者消费 | ⭐⭐⭐⭐ |
| 主题模式 | topic | 模糊路由键匹配 | 匹配的消费者消费 | ⭐⭐⭐⭐⭐ |
| 头部模式 | headers | 消息头匹配 | 匹配的消费者消费 | ⭐ |
| RPC 模式 | 默认 | 同步请求响应 | 双向通信 | ⭐⭐⭐ |
核心总结
- 基础场景:简单模式、工作队列
- 广播场景:发布 / 订阅(fanout)
- 精准匹配:路由模式(direct)
- 复杂匹配 :主题模式(topic)------ 企业最常用
- 特殊场景:头部模式(不用)、RPC 模式(同步调用)





