RabbitMQ 的交换机(转发器)

定义 :交换机/转发器一方面它接受生产者的消息,另一方面向队列推送消息。

在RabbitMQ中,有三种有三种类型的交换机 :

  • Fanout Exchange(不处理路由键)
  • Direct Exchange(处理路由键)
  • Topic Exchange(将路由键和某模式进行匹配)

1. Fanout Exchange

模型 :

其实由上图就可以很容易的知道 :只需要将队列与交换机进行绑定,生产者发送消息到队列上后,都会被转发到与该交换机绑定的所有队列上,这就是不处理路由键

2. Direct Exchange

模型 :

处理路由键,需要将队列与交换机进行绑定,,要求该消息与一个特定的路由键完全匹配,这是一个完整的匹配。

例如,如果一个队列绑定到该交换机上要求路由键”dog”,则只有被标记为”dog”的消息才回被转发。

3. Topic Exchange

模型 :

将队列绑定到一个模式上。

“#” 匹配一个或多个词,

“*” 匹配一个词

就是说,生产者方routingKey = goods.add,存在有消费者1routingKey = good.delete,消费者2的routingKey = goods.#,那么消息只会被消费者2获取,消费者1无法获取。