RabbitMQ - 在创建队列时复制其他队列的消息

时间:2021-03-17 12:22:04

标签: 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。

0 个答案:

没有答案