rabbitmq交换机类型图解(exchangeType:direct,topic,fanout)
关键词: 发布时间:2020-07-09 16:27:40 浏览次数:72

看了很多文字说明,依然不是很清晰,故按照代码逻辑写了个图,一目了然:


文字说明,来自网络,不是很准确:

* exchangeType说明

         * 性能排序:fanout > direct >> topic。比例大约为11:10:6

         *

         * direct:

         * 生产端不需要将Exchange进行任何绑定(binding)操作

         * 消息传递时需要一个“RouteKey”,可以简单的理解为要发送到的队列名字。

         * 如果vhost中不存在RouteKey中指定的队列名,则该消息会被抛弃

         *

         * fanout:

         * 不需要RouteKey

         * 任何发送到Fanout Exchange的消息都会被转发到与该Exchange绑定(Binding)的所有Queue上

         * 这种模式需要提前将Exchange与Queue进行绑定,一个Exchange可以绑定多个Queue,一个Queue可以同多个Exchange进行绑定

         * 如果接受到消息的Exchange没有与任何Queue绑定,则消息会被抛弃

         *

         * topic:

         * 任何发送到Topic Exchange的消息都会被转发到所有关心RouteKey中指定话题的Queue上

         * 1.这种模式较为复杂,简单来说,就是每个队列都有其关心的主题,所有的消息都带有一个“标题”(RouteKey),

         * Exchange会将消息转发到所有关注主题能与RouteKey模糊匹配的队列。

         * 2.这种模式需要RouteKey,也许要提前绑定Exchange与Queue。

         * 3.在进行绑定时,要提供一个该队列关心的主题,如“#.log.#”表示该队列关心所有涉及log的消息(一个RouteKey为”MQ.log.error”的消息会被转发到该队列)。

         * 4.“#”表示0个或若干个关键字,“*”表示一个关键字。如“log.*”能与“log.warn”匹配,无法与“log.warn.timeout”匹配;但是“log.#”能与上述两者匹配。

         * 5.同样,如果Exchange没有发现能够与RouteKey匹配的Queue,则会抛弃此消息。



rabbitmq交换机类型图解(exchangeType:direct,topic,fanout)

http://www.hu-rong.com/article/500


image.png

赞:(0)
踩:(0)
相关文章
rabbitmq基础教程
热门文章
win7中将文件拷贝到虚拟机linux下
php中用uploadify上传时session丢
laravel页面静态化的方法
centos7.4 64位下swoole安装及配置
centos7.4下php7.25多线程pthreads
微信扫一扫在哪
php-fpm经常卡死
单点登录sso原理及php实现方式及de
phpexcel设置行高及列宽,背景颜色,
一个简单的laravel分表联合查询
好评文章
php7中使用mongodb的aggregate进行
windows下使用MongoDB Compass Com
phpexcel设置行高及列宽,背景颜色,
laravel 中悲观锁 & 乐观锁的使用
laravel整合dingo/api方法步骤:jwt
在php中用curl请求java接口无法获
laravel页面静态化的方法
一个简单的laravel分表联合查询
laravel对具体的路由不采用csrfTok
php7 mongodb distinct及count方法
标签
rabbitmq mysql备份 elasticsearch
站点信息
建站时间:2011年
文章数:500篇
浏览数:253628
粤ICP备18028092号-1  微信:hurong241