消息中间件入门篇之 RabbitMQ 四种交换机详解

Direct Exchange (暴力匹配 routingkey 和 queueName)

使用频率最高, 处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。这是一个完整的匹配。如果一个队列绑定到该交换机上要求路由键 “abc”,则只有被标记为“abc”的消息才被转发,不会转发abc.def,也不会转发dog.ghi,只会转发abc。
在这里插入图片描述

Topic Exchange(*#模式匹配)

使用频率也非常高, 将路由键和某模式进行匹配。此时队列需要绑定要一个模式上。

  • # 匹配一个或多个词
  • * 匹配不多不少一个词

因此“abc.#”能够匹配到“abc.def.ghi”,但是“abc.” 只会匹配到“abc.def”。

在这里插入图片描述

Fanout Exchange(暴力绑定, 只为性能)

不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。
在这里插入图片描述

Headers Exchanges(通过信息头来路由, 基本没人用)

不处理路由键。而是根据发送的消息内容中的headers属性进行匹配。在绑定Queue与Exchange时指定一组键值对;当消息发送到RabbitMQ时会取到该消息的headers与Exchange绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。

猜你喜欢

转载自blog.csdn.net/qq_33709508/article/details/107543618