RabbitMQ 4 种 Exchange
普通 1
只要发送消息到指定名字的 Queue,该 Queue 就能收到
- 默认 Exchange
""
- routkingKey 即是 Queue 名
普通 2(同一个 Queue 有 多个消费者)
只要发送消息到指定名字的 Queue,该 Queue 就能收到
- 默认 Exchange
""
- routkingKey 即是 Queue 名
- C1 C2 消费的消息数量和等于 Queue 的消息总数量
Fanout:发布订阅模式
只要 Queue 绑定 Fanout Exchange 就能收到消息,每个绑定的 Queue 收到同一份消息
- 默认 routingKey
""
Direct:路由精确匹配模式
P 发送如下消息
routingKey | 消息 |
---|---|
orange | message 1 |
orange | message 2 |
black | message 3 |
black | message 4 |
green | message 5 |
green | message 6 |
red | message 7 |
Q1
- 绑定的精确 routingKey
orange
- 接收到消息
- message 1
- message 2
Q2
- 绑定的精确 routingKey
black
green
- 接收到消息
- message 3
- message 4
- message 5
- message 6
Topic:路由模糊匹配模式
通配符解析
*
匹配多个值#
匹配单个值
P 发送如下消息
routingKey | 消息 |
---|---|
a.orange.b | message 1 |
x.orange.y | message 2 |
1.2.rabbit | message 3 |
0.9.rabbit | message 4 |
lazy.n | message 5 |
lazy.m | message 6 |
red | message 7 |
Q1
- 绑定的模糊 routingKey
*.orange.*
- 接收到消息
- message 1
- message 2
Q2
- 绑定的模糊 routingKey
*.*.rabbit
lazy.#
- 接收到消息
- message 3
- message 4
- message 5
- message 6