我创建了一个rebbitmq扇出交换示例集成spring,但只有一个订阅可以收到消息,为什么?flow是我的配置: 发布配置
<rabbit:connection-factory id="connectionFactory" username="dev" password="dev" host="localhost" />
<rabbit:template id="template" connection-factory="connectionFactory" reply-timeout="2000" exchange="2remoting.exchange" />
<rabbit:admin connection-factory="connectionFactory" />
<rabbit:queue name="remoting.queue1" />
<rabbit:fanout-exchange name="2remoting.exchange" >
<rabbit:bindings>
<rabbit:binding queue="remoting.queue1"/>
</rabbit:bindings>
</rabbit:fanout-exchange>
订阅配置
<bean id="service" class="com.hzins.bsp.dev.TestServiceImpl" />
<rabbit:connection-factory id="connectionFactory" username="dev" password="dev" host="localhost" />
<rabbit:template id="template" connection-factory="connectionFactory" />
<rabbit:queue name="remoting.queue1" />
<rabbit:listener-container connection-factory="connectionFactory">
<rabbit:listener ref="listener" queue-names="remoting.queue1" />
<rabbit:listener ref="listener" queue-names="remoting.queue1" />
</rabbit:listener-container>
答案 0 :(得分:2)
不,你误解了fanout exchange
的定义。它将消息放入所有绑定队列。但不是订阅这些队列。
对于相同的队列,它没有多少订阅者(侦听器)的值。它们只是并发消费者,只有其中一个将从队列中收到消息。
请阅读更多RabbitMQ文档。