码迷,mamicode.com
首页 > 其他好文 > 详细

RabbitMQ发布订阅模式

时间:2018-11-11 00:57:28      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:类型   交换   匹配   实现   图片   使用   原理   取消   不同的   

这个可能是消息队列中最重要的队列了,其他的都是在它的基础上进行了扩展。
功能实现:一个生产者发送消息,多个消费者获取消息(同样的消息),包括一个生产者,一个交换机,多个队列,多个消费者。
 思路解读(重点理解): 
(1)一个生产者,多个消费者
(2)每一个消费者都有自己的一个队列
(3)生产者没有直接发消息到队列中,而是发送到交换机
(4)每个消费者的队列都绑定到交换机上
(5)消息通过交换机到达每个消费者的队列
该模式就是Fanout Exchange(扇型交换机)将消息路由给绑定到它身上的所有队列
以用户发邮件案例讲解
注意:交换机没有存储消息功能,如果消息发送到没有绑定消费队列的交换机,消息则丢失。

技术分享图片

交换机的作用:

生产者发送消息不会向传统方式直接将消息投递到队列中,而是先将消息投递到交换机中,在由交换机转发到具体的队列,队列在将消息以推送或者拉取方式给消费者进行消费,这和我们之前学习Nginx有点类似。
交换机的作用根据具体的路由策略分发到不同的队列中,交换机有四种类型。
Direct exchange(直连交换机)是根据消息携带的路由键(routing key)将消息投递给对应队列的
Fanout exchange(扇型交换机)将消息路由给绑定到它身上的所有队列
Topic exchange(主题交换机)队列通过路由键绑定到交换机上,然后,交换机根据消息里的路由值,将消息路由给一个或多个绑定队列
Headers exchange(头交换机)类似主题交换机,但是头交换机使用多个消息属性来代替路由键建立路由规则。通过判断消息头的值能否与指定的绑定相匹配来确立路由规则。

 

 

Rabbit高级队列(发布订阅)

  生产者投递消息给交换机缓存起来(不会直接给队列),交换机根据路由策略RoutingKey转发到不同的队列服务器中。队列服务器再以推送或者拉取形式让消费者消费。(类似Nginx)

  

RabbitMQ发布与订阅原理:

   案例:   用户注册 ---> 发送邮件 --->发送短信  

      

  技术分享图片

 

 

  

 

 

 

 

  

 

RabbitMQ发布订阅模式

标签:类型   交换   匹配   实现   图片   使用   原理   取消   不同的   

原文地址:https://www.cnblogs.com/toov5/p/9941081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!