多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
``` 在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消 费。这时就要用到Direct类型的Exchange ``` 在Direct模型下: 队列与交换机的绑定,不能是任意绑定了,而是要指定一个`RoutingKey`(路由key) 消息的发送方在 向 Exchange发送消息时,也必须指定消息的 `RoutingKey`。 Exchange不再把消息交给每一个绑定的队列,而是根据消息的`Routing Key`进行判断,只有队列的`Routingkey`与消息的 `Routing key`完全一致,才会接收到消息 ![](https://box.kancloud.cn/27018462fb7a14c35b0a52932400395a_525x182.png) 图解: - P:生产者,向Exchange发送消息,发送消息时,会指定一个routing key。 - X:Exchange(交换机),接收生产者的消息,然后把消息递交给 与routing key完全匹配的队列 - C1:消费者,其所在队列指定了需要routing key 为 error 的消息 - C2:消费者,其所在队列指定了需要routing key 为 info、error、warning 的消息