当前位置:首页 > 学习资源 > 讲师博文 > Rabbitmq-交换机详解

Rabbitmq-交换机详解 时间:2023-09-09      来源:华清远见

1 交换机介绍

RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储

RabbitMQ提供了四种Exchange:路由模式,订阅模式,主题模式,首部模式

 header模式在实际企业项目开发中几乎不用,本文只对前三种模式进行比较。

 性能排序:订阅模式 > 路由模式 > 主题模式 > 首部模式

1、直连交换机(Direct exchange)- 路由模式

具有路由功能的交换机,绑定到此交换机的时候需要指定一个routing_key,交换机发送消息的时候需要routing_key,会将消息发送道对应的队列

2、扇形交换机(Fanout exchange):- 订阅模式

 广播消息到所有队列,没有任何处理,速度最快。

3、主题交换机(Topic exchange):- 主题模式

在直连交换机基础上增加模式匹配,也就是对routing_key进行模式匹配,*代表一个单词,#代表多个单词

4、首部交换机(Headers exchange):- 首部模式

忽略routing_key,使用Headers信息(一个Hash的数据结构)进行匹配,优势在于可以有更多更灵活的匹配规则

1.1 直连交换机(路由模式)

直连交换机是一种带路由功能的交换机,一个队列会和一个交换机绑定,除此之外再绑定一个routing_key,当消息被发送的时候,需要指定一个binding_key,这个消息被送达交换机的时候,就会被这个交换机送到指定的队列里面去。同样的一个binding_key也是支持应用到多个队列中的。 这样当一个交换机绑定多个队列时,就会被送到对应的队列去处理。




 

1.2 扇形交换机(订阅模式)

 扇形交换机是最基本的交换机类型,它能做的事非常简单——广播消息,扇形交换机会把能接收到的消息全部发送给绑定在自己身上的队列。因为广播不需要"思考",所以扇形交换机处理消息的速度也是所有的交换机类型里面最快的。





 

1.3主题交换机(主题模式)

直连交换机的routing_key方法非常简单,如果希望将一条消息发送给多个队列,那么这个交换机需要绑定非常多的routing_key,这样的话消息的管理就会非常的因难。 所以RabbitMQ提供了一种主题交换机,发送到主题交换机上的消息需要携带制定规则的routingkey,主题交换机会根据这个规则将数据发送到对应的队列上。

 

 


上一篇:BOM和 DOM的联系与区别

下一篇:Bootloader存在的意义是什么?

戳我查看嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2024 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部