ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

春季-向多个RabbitMQ使用者发送相同的消息

2019-11-20 12:21:59  阅读:216  来源: 互联网

标签:spring-amqp rabbitmq spring-rabbit rabbitmq-exchange spring


需求:
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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有