RabbitMQ架构图
publisher:生产者,也就是发送消息的一方
consumer:消费者,也就是消费消息的一方
queue:队列,存储消息。生产者投递的消息会暂存再消息队列中,等待消费者处理
exchange:交换机,负责消息路由。生产者发送的消息由交换机决定投递到哪个队列
virtual host:虚拟主机,起到数据隔离的作用。每个虚拟主机相互独立,有各自的exchange、queue
RabbitMQ的五种模式及其能够达到的效果
- simple简单模式(一个生产者、一个队列和一个消费者):一个消息只能被一个消费者消费,生产者将消息发送到MQ中,MQ会将消息保存到队列中,然后消费者会去监听,一旦消费者监听到队列,就会把消息取出来进行消费
- 工作队列模式(Work Queue,一个生产者、一个队列和多个消费者):多个消费者要去竞争消费队列中的消息,且会根据消费者的消费能力强弱去消费消息,是能者多劳的消息队列模型
- 发布订阅模式(Publish/Subscribe):加入fanout交换机角色,消息不再发给队列而且发给交换机,交换机根据规则无条件路由到队列里面去,消费者监听队列,适合群发消息的场景
- 路由模式(Routing):生产者将消息发送到交换机并指定一个路由key,交换机根据路由key来发送消息到队列,且可以绑定多个队列,实现消息的精准路由
- 主题模式(Topic模式,通配符匹配):交换机根据
.
号和#
号来匹配路由key,#
号匹配一个或多个词,.
号匹配一个词