我在后端有一个RabbitMQ应用程序。所以我想开发自定义的第三方分析代码,它连接RabbitMQ上的应用程序队列并收集数据。所以我的问题是我想确保应用程序和我的代码都不会丢失来自rabbitmq的任何数据。
如果可以,我该如何配置RabbitMQ队列?我在RabbitMQ上有管理权限。 我希望它不是生产者问题的代码,因为我没有访问应用程序代码
感谢您的帮助
答案 0 :(得分:0)
更改当前的交换/队列映射以允许邮件复制
目前,我们可以简化现有生产者向现有交换机发送消息,将消息路由到某个队列,消息现在从该队列中消耗:
[producer-app] ---> existing-exchange ---> existing-queue ---> [existing-consumer]
现在,您希望拥有以下设计,新消费者使用相同的消息:
[producer-app] ---> existing-exchange ---> existing-queue ---> [existing-consumer]
\--> new-queue --------> [your-consumer]
您可能需要更改existing-exchange
的配置以允许复制邮件 - 例如direct
和fanout
将在每个队列上创建相同的邮件。
根据您的应用程序,可能很容易在没有生产者更改的情况下执行,但您需要了解可能存在的缺陷:
new-queue
(最好是来自您的消费者工件),因为它将接收所有消息;如果您的消费者关闭,队列不会消失,除非它被设为独占或设置了TTL