问题: 我正在使用由 RabbitMQ 支持的 Spring Integration。我有一个发布消息的 Fanout Exchange。我希望启动同一服务的多个实例,这会创建一个绑定到此交换的队列。当一条消息发布到这个交换器时,我希望所有启动的服务都能接收到该消息。这不会发生,因为虽然有多个服务,但它们都使用相同的队列
解决方案: 为每个消费者创建一个非持久的、独占的、匿名的队列。
问题: 如何使队列匿名?
到目前为止,这是我的代码,问题是绑定需要一个队列属性,而队列需要一个名称 - 因此是命名的,而不是匿名的。
<rabbit:fanout-exchange id="structureUpdateExchange" name="publish.registry.update" >
<rabbit:bindings>
<rabbit:binding queue="publish.registry.update.queue" />
</rabbit:bindings>
</rabbit:fanout-exchange>
<rabbit:queue durable="false" auto-delete="true" exclusive="true" name="publish.registry.update.queue" />
<si:channel id="publishInformationChannel" />
<int-amqp:inbound-gateway request-channel="publishInformationChannel"
queue-names="publish.registry.update.queue" />
任何帮助将不胜感激。谢谢。