消息中间件——MQ
Posted 娱乐圈996
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息中间件——MQ相关的知识,希望对你有一定的参考价值。
MQ传输模式
P:生产者 C:消费者 红色:队列 蓝色:交换机
1、点对点模式
一个生成者,一个消费者。生产者将消息发送到队列中,消费者监听队列进行消费。
2、工作模式
一个生产者,多个消费者。生产者将消息发送到队列中,此时监听队列的消费者C1和消费者C2 会处于竞争关系,先到先得的关系,谁先抢到谁消费。
3、发布订阅模式
生产者产生消息,将消息发送到交换机中,交换机会将消息发送到与之绑定的队列中,各个消费者会监听对应的队列进行消费。
4、路由模式
与 “发布订阅模式” 对比,多了路由选择。生产者产生消息,将消息发送到交换机。交换机会根据路由键把消息发送到绑定在交换机上面指定路由键的队列。
举个栗子:
下图中的routingKey="error" 会将消息发到队列(amqp.gen-S9b) 和队列(amqp.gen-Agl)中,
routingKey="info" 或 routingKey="warning"的消息只会发送到队列(amqp.gen-Agl)中。
5、主题模式
在路由模式基础上,让路由key可以使用通配符。相当于进行分类。
主题模式必须由一个英文句点号“.”分隔的字符串(被“.”分隔开的每一段独立的字符串称为一个单词)。
"*" 表示任何一个词
"#" 表示0或多个词
举个栗子 :
以上图的路由规则举栗,如果消息的 routingKey 设置为 “xxx.orange.rabbit”,那么该消息会同时路由到 Q1 与 Q2,被消费者消费。
routingKey="lazy.orange.girl”的消息会路由到Q1与Q2。
routingKey="lazy.beautiful.girl”的消息会路由到 Q2。
routingKey="lazy.beautiful.rabbit”的消息会路由到 Q2(只会投递给Q2一次,虽然这个routingKey 与 Q2 的两个 bindingKey 都匹配)。
routingKey="man.girl.girl.rabbit”或routingKey="hello.girl”的消息将会被丢弃,因为它们没有匹配任何bindingKey。
以上是关于消息中间件——MQ的主要内容,如果未能解决你的问题,请参考以下文章