RaabbitMQ常用的交换机类型有四种,分别为:fanout,direct,topic,headers.
1:Fanout Exchange
没有指定的BindIngs和路由键信息,交换机收到消息后,一广播模式发送到消息队列queue中.
2:Direct Exchange
有明确的Bindings信息和RoutKey信息,direct类型的交换机规则比较简单,他会把消息路由到BindingKey和RoutingKey完全匹配队列中.
缺点:没有找到消息,消息会丢失.
3:Topic Exchange
有明确的BindingKey和RoutingKey,它们都是以.分割的
在Direct Exchange的基础上进行了增强.优化了RoutingKey的规则,新增了路由匹配规则,例如user.#(表示user.开头#表示后面有0个或者0个以上的单词都可以匹配),user.(表示user.开头,*表示后面可以跟任意一个单词都可以匹配)
4:Headers Exchange
这种类型的交换机不依赖于路由键匹配规则来路由信息,而是根据发送消息携带的headers属性进行匹配,在绑定队列和交换器是指定一组键值对.当发送的消息到交换机时,RabbitMQ会获取到消息中的headers信息,对比叫交换机中的键值对信息是否匹配,如果匹配,消息就会保存到该队列中,headers类型的交换机性能很差,不建议使用.
|