当前位置:   article > 正文

rabbitmq的4种交换机模式_rabbitmq有几种交换机

rabbitmq有几种交换机

RabbitMQ通过Exchange(交换机)将消息根据不同规则路由到对应的Queue(队列)中,本文主要简述交换机的四种类型,仅供学习分享使用,如有不足之处,还请指正。

RabbitMQ交换机类型

RabbitMQ一共四种交换机,如下所示:

  1. Direct Exchange:直连交换机,根据Routing Key(路由键)进行投递到不同队列。
  2. Fanout Exchange:扇形交换机,采用广播模式,根据绑定的交换机,路由到与之对应的所有队列。
  3. Topic Exchange:主题交换机,对路由键进行模式匹配后进行投递,符号#表示一个或多个词,*表示一个词。
  4. Header Exchange:头交换机,不处理路由键。而是根据发送的消息内容中的headers属性进行匹配。

Direct Exchange

直连交换机,根据Routing Key(路由键)进行投递到不同队列。

单个绑定,一个路由键对应一个队列。如下所示:

多个绑定,一个路由键对应多个队列,则消息会分别投递到两个队列中,如下所示:

Fanout Exchange

扇形交换机,采用广播模式,根据绑定的交换机,路由到与之对应的所有队列。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。

Topic Exchange

主题交换机,对路由键进行模式匹配后进行投递,符号#表示一个或多个词,*表示一个词。因此“abc.#”能够匹配到“abc.def.ghi”,但是“abc.*” 只会匹配到“abc.def”。如下所示:

Header Exchange

头交换机,不处理路由键。而是根据发送的消息内容中的headers属性进行匹配。在绑定Queue与Exchange时指定一组键值对;当消息发送到RabbitMQ时会取到该消息的headers与Exchange绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。headers属性是一个键值对,可以是Hashtable,键值对的值可以是任何类型。而fanout,direct,topic 的路由键都需要要字符串形式的。

匹配规则x-match有下列两种类型:

x-match = all :表示所有的键值对都匹配才能接受到消息

x-match = any :表示只要有键值对匹配就能接受到消息

消息头交换机,如下图所示:

以上就是RabbitMQ常见的四种交换机模式。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/708387
推荐阅读
相关标签
  

闽ICP备14008679号