默认交换机:

实际上是一个没有名称(empty string)的Direct exchange.每个新建队列都会默认绑定到这个交换机上。绑定的路由键(routing key)名称与队列名称相同

直连交换机:

直连交换机(direct exchange)是根据消息携带的路由键(routing key)将消息投递给对应队列的。直连交换机用来处理消息的单播路由(unicast routing)。

  1. 当一个队列绑定到某个交换机上,同时赋予该绑定一个路由键(routing key);
  2. 当一个携带着路由键为R的消息被发送给直连交换机,交换机会把他路由给绑定值同样为R的队列;

直连交换机经常用来循环分发任务给多个woker,消息的负载均衡是发生在消费者(customer)之间,而不是队列之间;

会根据routingkey进行精准匹配。直连交换机可以分发任务给多个工作者(worker)

扇形交换机

删除交换机(funout exchange)将消息路由给绑定到它身上的所有队列,而不会理会绑定的路由键。如果N个队列绑定到某个扇形交换机上,当有消息发送给此扇形交换机时,交换机会将消息的拷贝分别发送给所有的N个队列。扇形用来交换机处理消息的广播路由;

将消费分发给所有绑定的队列,而不会理会routingkey。优点是转发消息最快,性能最好。一般会用来处理广播消息(broadcast routing)。

主题交换机(topic exchange)

主题交换机通过对消息的路由键和队列到交换机的绑定模式之间的匹配,将消息路由给一个或多个队列。主题交换机经常用来实现各种分发/订阅模式及变种;通常用来实现消息的多播路由;

根据routingkey进行模糊匹配,将消息分发给一个或多个队列(delimited by dots)。 routingkey可以有通配符’’,’#’。 表示匹配一个单词,# 匹配0个或多个单词。

头交换机

头交换机使用多个消息属性来代替路由键建立路由规则。通过判断消息头的值能否与指定的绑定相匹配来确立路由规则。