RabbitMQ 三种 Exchange 模式——订阅、路由、通配符模式

本文深入探讨了AMQP协议下的三种消息模式:订阅模式、路由模式及通配符模式。通过详细解释每种模式的工作原理及其应用场景,帮助读者理解如何在不同需求下选择合适的消息传递策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

订阅、路由、通配符模式,三种模式都是用了Exchange交换机,消息没有直接发送到队列,而是发送到了交换机,经过队列绑定交换机到达队列。

 一、订阅模式(Fanout Exchange):

一个生产者,多个消费者,每一个消费者都有自己的一个队列,生产者没有将消息直接发送到队列,而是发送到了交换机,每个队列绑定交换机,生产者发送的消息经过交换机,到达队列,实现一个消息被多个消费者获取的目的。需要注意的是,如果将消息发送到一个没有队列绑定的exchange上面,那么该消息将会丢失,这是因为在rabbitMQ中exchange不具备存储消息的能力,只有队列具备存储消息的能力。

 

 

二、路由模式(Direct Exchange)

这种模式添加了一个路由键,生产者发布消息的时候添加路由键,消费者绑定队列到交换机时添加键值,这样就可以接收到需要接收的消息。

 

 

 

三、通配符模式(Topic Exchange)

   基本思想和路由模式是一样的,只不过路由键支持模糊匹配,符号“#”匹配一个或多个词