RabbitMQ 消息模型
RabbitMq有3种常用的消息模型,其中订阅模式又分成3类
1.基本消息模型:生产者将消息发送到队列,消费者从队列中获取消息,队列是存储消息的缓冲区
2.Work Queues工作模型:一个生产发送消息到队列,允许有多个消费者接收消息,但是一条消息只会被一个消费者获取。
3.订阅模式(包含3种):生产者不是直接发送消息到队列,而是先发送给交换机,经由交换机分配到不同的队列,而每个消费者都有自己的队列
1、1个生产者,多个消费者
2、每一个消费者都有自己的一个队列
3、生产者没有将消息直接发送到队列,而是发送到了交换机
4、每个队列都要绑定到交换机
5、生产者发送的消息,经过交换机到达队列,实现一个消息被多个消费者获取的目的
订阅模式之fanout(广播):
- 可以有多个消费者,每个消费者都有自己的队列
- 每个队列都要与exchange绑定
- 生产者发送消息到exchange
- exchange将消息把消息发送到所有绑定的队列中去
- 消费者从各自的队列中获取消息
订阅模式之direct:
在路由模式(Direct)中,可以实现不同的消息被不同的队列消费,在Direct模式下,交换机不再将消息发送给所有绑定的队列,而是根据Routing Key将消息发送到指定的队列,队列在与交换机绑定时会设定一个Routing Key,而生产者发送的消息时也需要携带一个Routing Key。
订阅模式之Topics:
Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符
小人才疏学浅,看官不喜勿喷,谢谢