RabbitMQ 消息队列的5中方式
1、简单队列(1对1)
即:一个生产者一个消费者
2、Work模式
一个生产者,两个消费者。
但是MQ中一个消息只能被一个消费者获取。即消息要么被消费者A获取,要么被消费者B获取。这种模式适用于类似集群,能者多劳,性能好的消费者会多次消费消息,性能低的消费者则很难进行消费。
3、订阅模式
一个生产者,多个消费者。每个订阅消息的消费者都会获得消息。
每个消费者都有自己的一个队列。
生产者没有将消息直接发送到队列,而是发送到了交换机
每个队列都要绑定到交换机
生产者发送的消息,经过交换机,到达队列,实现一个消息被多个消费者获取的目的。
这种模式下每个消费者获得的消息都是一样的,有时我们需要各个队列的消息只有部分差异。
4、路由模式
路由模式是在订阅的基础上的完善,可以在生产消息的时候,加入key值,与key值匹配的消费者消费消息。
5、通配符模式
但路由模式中,如果对应的类型更多,就需要写很多key值。但其实它只与第一个队列有一点差别。那就可以考虑第五种模式:
通配符模式是在路由模式上的升级,他允许key模糊匹配。*代表一个词,#代表一个或者多个词。通过通配符模式我们就可以将消费者1对应的一个key准确定为item.add。而消费者2我们就不需要一一写出key,而是用item.#代替即可。