RabbitMQ(四) ——路由

RabbitMQ(四)——路由

(原创内容,转载请注明来源,谢谢)

一、概述

路由模式(routing)是交换机不将消息广播到全部的队列中,而是采用交换机的另一种模式——direct。该模式下,交换机会精准的将消息发送到某个与其绑定的队列,而不是发送给全部队列。

如果没有队列绑定交换机,消息会丢失。

路由模式如下图所示:

二、绑定方式(binding)

在交换机的fanout模式下,不需要routing key,但是在此模式下,由于交换机需要精准的将消息发送给某个(某些)队列,则需要队列与交换机进行绑定。

绑定方式如下:

$routing_key ='black';
$channel->queue_bind($queue_name,$exchange_name, $routing_key);

这样绑定后,当生产者指定的routingkey是‘black’,则交换机会将其转发到上述的队列中。

三、多重绑定(multiple bindings)

当交换机的direct模式下,允许一个队列绑定多个routing key,也运行交换机将消息发给多个收听同样routing key的队列。此时,如果每个队列监听的消息是一致的,而生产者发送给交换机的routing key也是这个值,则此模式下的direct模式和fanout模式是一样的,即交换机会把消息转发给所有的队列。

四、发送与接收消息

1、定义交换机

要发送消息,首先定义交换机的时候,需要将其模式定义为direct:

$channel->exchange_declare('direct_logs','direct', false, false, false);

2、发送消息

$severity = ‘test’;
$channel->exchange_declare('direct_logs','direct', false, false, false);
$channel->basic_publish($msg,'direct_logs', $severity);
上述的$severity即routing key。

3、消费者

$severity = ‘test’;
$channel->queue_bind($queue_name,'direct_logs', $severity);

——written by linhxx 2017.08.22

原文发布于微信公众号 - 决胜机器学习(phpthinker)

原文发表时间:2017-08-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑白安全

什么是ARP欺骗?

ARP欺骗是一种恶意行为者通过局域网发送伪造的ARP(地址解析协议)消息的攻击类型。这会导致将攻击者的MAC地址与网络上的合法计算机或服务器的IP地址链接起来。...

1271
来自专栏desperate633

TCP/IP 之 可靠数据传输原理什么是可靠?Rdt 1.0: 可靠信道上的可靠数据传输Rdt 2.0: 产生位错误的信道Rdt 2.1: 发送方, 应对ACK/NAK破坏Rdt 2.2: 无NAK消

可靠数据传输对于应用层、传输层、链路层都很重要,是网络领域的Top10问题。 对于传输层来说,由于相邻的网络层是不可靠的,所以要在传输层实现可靠数据传输(rd...

1412
来自专栏后端技术探索

Nginx防止大图片占满带宽

修改nginx配置文件中图片访问的配置部分 对于正常小图的访问不限制,把正常图的大小限定为 100K 以内,超出时就进行限速,速度限定为最大 100k/s

792
来自专栏张善友的专栏

cas原理介绍

CAS用来标志用户的token是存在它自己的域名下的,不是存在web应用的域名下的.CAS判断用户登录由agent决定,agent验证用户信息有两种处理. ...

3829
来自专栏PHP在线

小哥哥,小姐姐,我有一份tcp、http面试指南你要吗?

要说http就绕不开tcp,TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。但是,http是基于tcp协议的。

1034
来自专栏Java学习123

如何修改tomcat的默认端口号

3006
来自专栏专注研发

SSH免密码登录配置

ssh免密码登录Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 的解决方案

2673
来自专栏栗霖积跬步之旅

应用层-day01

主流应用程序体系结构:CS结构、P2P结构。 CS结构:客户-服务器体系结构。有一台总是打开的主机称为服务器,它服务来自其他许多称为客户的主机的请求。 P2P体...

3445
来自专栏后端技术探索

nginx对IP和目录限速

从Nginx配置与应用详解专题的投票结果来看,Nginx已经是目前仅次于APache和MS IIS的Web服务器。Nginx优秀的高并发支持和高效的负载均衡是我...

732
来自专栏GreenLeaves

Oracle 数据库和Sql Server数据库的区别

Oracle数据库的访问方式,和SqlServer数据库是有很大差别的,下面用图来说明: 1、Sql Server数据库 ? SqlServer数据库的访问方式...

2087

扫码关注云+社区