RabbitMQ系列--交换器类型

其他网址

RabbitMQ详解(三)------RabbitMQ的五种队列 - YSOcean - 博客园
RabbitMQ的常见队列模型_qq_39648029的博客-****博客

交换器类型

其他网址

《RabbitMQ实战指南》=> 2.1.4 交换器类型

简介

        队列模式一共有五种:简单模式、work模式、发布/订阅模式、路由模式、主题模式。但是实际上只有三种,第一种简单队列,第二种工作模式,剩下的三种都是和交换器绑定的合起来称为主题模式。

  交换器分为四种,分别是:direct、fanout、topic和 headers。

  前面三种分别对应路由模式、发布订阅模式和通配符模式,headers 交换器允许匹配 AMQP 消息的 header 而非路由键,除此之外,header 交换器和 direct 交换器完全一致,但是性能却差很多,因此基本上不会用到该交换器,这里也不详细介绍。

①、direct

  如果路由键完全匹配的话,消息才会被投放到相应的队列。

RabbitMQ系列--交换器类型

②、fanout

  当发送一条消息到fanout交换器上时,它会把消息投放到所有附加在此交换器上的队列。

RabbitMQ系列--交换器类型

③、topic

  设置模糊的绑定方式,“*”操作符将“.”视为分隔符,匹配单个字符;“#”操作符没有分块的概念,它将任意“.”均视为关键字的匹配部分,能够匹配多个字符。

RabbitMQ系列--交换器类型

队列模式

简单模式

一个生产者对应一个消费者。

RabbitMQ系列--交换器类型

work模式

一个生产者对应多个消费者,但是只能有一个消费者获得消息。

RabbitMQ系列--交换器类型

发布/订阅 模式

一个消费者将消息首先发送到交换器,交换器绑定到多个队列,然后被监听该队列的消费者所接收并消费。

RabbitMQ系列--交换器类型

路由模式

生产者将消息发送到direct交换器,在绑定队列和交换器的时候有一个路由key,生产者发送的消息会指定一个路由key,那么消息只会发送到相应key相同的队列,接着监听该队列的消费者消费消息。也就是让消费者有选择性的接收消息。

RabbitMQ系列--交换器类型

主题模式

根据路由key进行完整的匹配(完全相等才发送消息),这里的通配符模式通俗的来讲就是模糊匹配。符号“#”表示匹配一个或多个词,符号“*”表示匹配一个词。

RabbitMQ系列--交换器类型