RabbitMQ交换器类型常用的有fanout、direct、topic、headers这四种。
fanout:
它会把所有发送到交换器中的消息路由到所有与此交换器绑定的队列中去。
direct:
他会把消息路由到RoutingKey和BindingKey完全匹配的队列中去。
topic:
前面讲到direct交换器路由规则是完全匹配RoutingKey和BindingKey,但是这种严格的匹配方式在很多情况下不能满足实际业务需求。topic类型交换器在匹配规则上进行了扩展,它与direct交换器类型相似,也是将消息路由到RoutingKey和BindingKey相匹配的队列中去,但是匹配规则有点不同,它约定:
RoutingKey为一个“.”分隔的字符串(被点号“.”分隔开的每一段独立的字符串称为一个单词),例如 www.baidu.com
BindKey和RoutingKey同样也是被“.”分隔的字符串。
BindingKey中可以存在两种特殊字符串“”和“#”,用于做模糊匹配,其中代表一个单词,“#”用于匹配一个或者多个单词(包括0个);
headers:
他会根据消息中的Header去匹配,队列绑定的一组headers中去