春季-向多个RabbitMQ使用者发送相同的消息
作者:互联网
需求:
1)我需要通过Java应用程序并使用主题交换和存储来获取存储在Mongo DB中的数据.绑定键,在RabbitMQ上创建了3个队列.到目前为止,我已经执行了所有操作.
问题从第二点开始.
2)当消息应该对所有3个队列的多个使用者可用时.但是,当第一个使用者使用3个队列中的消息时,其余使用者将无法使用它.如何使消息对多个使用者高度可用.
是否有任何方法可以实现此要求,或者此要求是否有其他替代解决方案.
解决方法:
您的所有使用者都必须提供自己的唯一队列,并将其绑定到同一交换机.
与JMS一样,AMQP中没有这样的Topic抽象.
即使我们可以通过主题或扇出交换发布消息,该消息也将作为单个条目放置在队列中,因此,只有一个使用者将能够从中选择消息.
我的命题的配置可能如下所示:
<queue id="commandQueue" name="#{node.id}.command"
auto-delete="true"/>
<fanout-exchange name="commandsExchange">
<bindings>
<binding queue="commandQueue"/>
</bindings>
</fanout-exchange>
<amqp:inbound-channel-adapter id="commandConsumer"
queue-names="#{commandQueue.name}"
channel="commandChannel"/>
这样,我所有的应用程序实例都将其唯一队列(基于node.id抽象)绑定到同一命令Exchange.并且发布到commandExchange的消息将传递到我的所有节点.
如果节点已死,auto-delete =“ true”可帮助我避免队列中出现其他消息.
高温超导
标签:spring-amqp,rabbitmq,spring-rabbit,rabbitmq-exchange,spring 来源: https://codeday.me/bug/20191120/2043660.html