RabbitMQ 的交换机(转发器)
定义 :交换机/转发器一方面它接受生产者的消息,另一方面向队列推送消息。
在RabbitMQ中,有三种有三种类型的交换机 :
- Fanout Exchange(不处理路由键)
- Direct Exchange(处理路由键)
- Topic Exchange(将路由键和某模式进行匹配)
1. Fanout Exchange
模型 :
其实由上图就可以很容易的知道 :只需要将队列与交换机进行绑定,生产者发送消息到队列上后,都会被转发到与该交换机绑定的所有队列上,这就是不处理路由键。
2. Direct Exchange
模型 :
处理路由键,需要将队列与交换机进行绑定,,要求该消息与一个特定的路由键完全匹配,这是一个完整的匹配。
例如,如果一个队列绑定到该交换机上要求路由键”dog”,则只有被标记为”dog”的消息才回被转发。
3. Topic Exchange
模型 :
将队列绑定到一个模式上。
“#” 匹配一个或多个词,
“*” 匹配一个词
就是说,生产者方routingKey = goods.add,存在有消费者1routingKey = good.delete,消费者2的routingKey = goods.#,那么消息只会被消费者2获取,消费者1无法获取。