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

rabbitmq系列四 之路由

时间:2018-06-16 15:11:45      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:控制台   hide   fan   out   路由   name   ror   ann   channel   

1、路由

  在上一个的教程中,我们构建了一个简单的日志记录系统。我们能够向许多接收者广播日志消息。

  在本次教程中,我们向该系统添加一些特性,比如,我只需要严重错误(erroe级别)的部分日志打印到磁盘文件中,但是同时仍然把所有的日志打印到控制台。

2、绑定

  在前面的例子中。我们已经用以下的代码创建了绑定。

技术分享图片
1 channel.queueBind(queueName, EXCHANGE_NAME, "");
View Code

 

  绑定是指交换机(exchange)与队列(queue)之间的联系,也可以理解为,当某个队列和某个交换机进行了绑定,那么该队列对该交换机的消息感应器。

  绑定的时候,我们可以提供一个额外的参数routingKey,为了避免与basic_publish的参数混淆,我们可以把它叫做绑定键(binding key),以下是如何创建带绑定键的绑定。

技术分享图片
1 channel.queueBind(queueName, EXCHANGE_NAME, "black");
View Code

  绑定键的意义取决于交换机的类型,我们之前使用过的扇型交换机(fanout exchanges)会忽略这个值。

3、直接交换机

  上一篇写的日志系统广播所有的消费者(consumers),我们打算扩展它,基于日志的严重程度进行日志消息过滤,例如我们也许只是希望将比较严重的错误(error)日志写入磁盘,以免在警告(warning)或者信息(info)日志上浪费磁盘空间。

  上一篇中,我们使用的扇型交换机(fanout exchange)是没有足够的灵活性 —— 它能做的仅仅是广播。

  在这里我们要使用直接 交换机进行代替,它的算法很简单——交换机将对绑定键和路由键进行精确匹配,然后决定将消息发送到哪个队列。模型如下图所示。

              技术分享图片

  从上图列子中可以看出,直接交换机x与两个队列Q1、Q2进行绑定,第一个队列使用了orange作为绑定键,第二个队列有两个绑定键,一个使用可black作为绑定键,另外一个使用了green作为绑定键。

  

 

rabbitmq系列四 之路由

标签:控制台   hide   fan   out   路由   name   ror   ann   channel   

原文地址:https://www.cnblogs.com/Hxinguan/p/9190476.html

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