RabbitMQ 消息队列的5中方式

1、简单队列(1对1)

即:一个生产者一个消费者

2、Work模式

一个生产者,两个消费者。

但是MQ中一个消息只能被一个消费者获取。即消息要么被消费者A获取,要么被消费者B获取。这种模式适用于类似集群,能者多劳,性能好的消费者会多次消费消息,性能低的消费者则很难进行消费。

3、订阅模式

一个生产者,多个消费者。每个订阅消息的消费者都会获得消息。

每个消费者都有自己的一个队列。

生产者没有将消息直接发送到队列,而是发送到了交换机

每个队列都要绑定到交换机

生产者发送的消息,经过交换机,到达队列,实现一个消息被多个消费者获取的目的。

这种模式下每个消费者获得的消息都是一样的,有时我们需要各个队列的消息只有部分差异。

4、路由模式

路由模式是在订阅的基础上的完善,可以在生产消息的时候,加入key值,与key值匹配的消费者消费消息。

5、通配符模式

但路由模式中,如果对应的类型更多,就需要写很多key值。但其实它只与第一个队列有一点差别。那就可以考虑第五种模式:

通配符模式是在路由模式上的升级,他允许key模糊匹配。*代表一个词,#代表一个或者多个词。通过通配符模式我们就可以将消费者1对应的一个key准确定为item.add。而消费者2我们就不需要一一写出key,而是用item.#代替即可。

经验分享 程序员 微信小程序 职场和发展