文章目录
- 一、 Rabbitmq 交换器Exchange的5种类型
- 1.1 简单模式(一个消费者)
- 1.2 工作队列模式(多个消费者)
- 1.3(广播模式/分裂模式)(只涉及`交换器`,不涉及路由key)
- 1.4 路由模式Routing(即:直接模式Direct)涉及`交换器`和`固定路由key`
- 1.5 通配符路由模式/动态路由模式 Topics (涉及`交换器` 和 `路由key`)
- 二、不同类型的消息发送姿势
一、 Rabbitmq 交换器Exchange的5种类型
1.1 简单模式(一个消费者)
功能:一个生产者P发送消息到一个队列Q,然后一个消费者C接收。
1.2 工作队列模式(多个消费者)
功能:一个生产者,一个队列,多个消费者,每个消费者都从这一个队列中获取消息,它们获取到的消息是唯一的。
多个消费者是 轮询 的从队列中拿取消息。
假如消息队列中有10条消息,那么C1拿取的消息是0 2 4 6 8 ,C2拿到的是1 3 5 7 9。
1.3(广播模式/分裂模式)(只涉及交换器
,不涉及路由key)
生产者把消息 扔给交换机
(Exchange),交换机 给每个绑定的队列 都发送 同样的一份消息,不涉及routingKey
。
1.4 路由模式Routing(即:直接模式Direct)涉及交换器
和固定路由key
说明:
①生产者 把指定了路由key
的消息 扔给交换机
;(即:消息的路由key 就指明了这个消息会路由到哪个队列中去)
②交换机根据消息的路由key
把消息路由到 满足路由规则的消息队列Queue中去。
1.5 通配符路由模式/动态路由模式 Topics (涉及交换器
和 路由key
)
相比于 路由模式,就是 就是多了个 通配符匹配,消费者接收消息更灵活。
说明:
①生产者 把指定了路由key
的消息 扔给交换机
,
②交换机根据消息的路由key
与绑定队列 的路由规则进行匹配,把消息 路由到 对应的队列中。
符号
-
*
:只能匹配一个单词。如: lazy.* 可以匹配lazy.irs或者lazy.cor - #: 可以匹配多个. 隔开的单词。如: lazy.irs或者lazy.irs.cor
二、不同类型的消息发送姿势