首页 > 解决方案 > RabbitMQ - 在创建队列时复制其他队列的消息

问题描述

我有多个生产者使用 amq.direct 交换和特定的路由密钥发布到他们的特定(持久和有限)队列

Queues:
  producer.06
  producer.07
  ...

Routing keys:
  "producer.06" -> producer.06
  "producer.07" -> producer.07
  ...

我也有多个消费者。当他们连接时,他们会创建自己的(专有)队列和路由键,以接收来自他们感兴趣的队列的所有消息。这样多个消费者可以获得相同的消息。

Queues:
  consumer.a
  consumer.b
  ...

Routing keys:
  "producer.06" -> consumer.a
  "producer.06" -> consumer.b
  "producer.07" -> consumer.b
  ...

在绑定路由键之前,我想用相关生产者队列的消息快照填充消费者的队列。在消息复制和路由键绑定之间的间隔中丢失一些消息是可以接受的,对于我的应用程序来说,这是比乱序消息更好的选择。消费者不应从生产者的队列中删除消息(因为其他消费者将需要它们)。

有没有办法做到这一点?-将队列的快照复制到另一个队列中-或者有人对如何实现这一点有建议吗?

我在 Erlang 23.0.2 上运行 RabbitMQ 3.8.4,并为消费者使用 Rabbit .Net 客户端 6.0.0.0。

标签: rabbitmq

解决方案


推荐阅读