其他分享
首页 > 其他分享> > 春季-向多个RabbitMQ使用者发送相同的消息

春季-向多个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