RabbitMQ中有虚拟机、交换机、绑定、队列等概念。
其中交换机类型有四种,分别是Direct exchange、Fanout exchange 、Topic exchange、Headers exchange
参考:https://www.cnblogs.com/linyufeng/p/9885020.html
Direct Exchange
处理路由键。需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配。
Fanout Exchage
不处理路由键。只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播模式。该交换机转发消息是最快的。
Topic Exchange
将路由键和某模式进行匹配,此时队列需要绑定到一个模式上。支持多种匹配符号匹配。
Headers Exchange
不处理路由键。而是根据发送的消息内容中的headers属性进行匹配。在绑定Queue与Exchange时指定一组键值对;当消息发送到RabbitMQ时会取到该消息的headers与Exchange绑定时指定的键值对进行匹配;如果完全匹配则消息会路由到该队列,否则不会路由到该队列。headers属性是一个键值对,可以是Hashtable,键值对的值可以是任何类型。而fanout,direct,topic 的路由键都需要要字符串形式的。
匹配规则x-match有下列两种类型:
x-match = all :表示所有的键值对都匹配才能接受到消息
x-match = any :表示只要有键值对匹配就能接受到消息
入门及消息分发机制
- AMQP 协议
- RabbitMQ简介