如何将消息复制到RabbitMQ上的另一个队列?

时间:2018-07-31 07:06:22

标签: rabbitmq message-queue amqp rabbitmqctl

使用RabbitMQ作为代理,我想将所有消息从一个队列复制到另一个队列以进行测试/调试。通过RabbitMQ Web管理控制台/ CLI最简单的方法是什么?

P.S。在用于指定队列的Web控制台下,我只能移动消息,而不能复制消息到新队列。

4 个答案:

答案 0 :(得分:2)

当我需要执行此类任务时,请执行以下操作(假设您要复制参考队列中的所有消息):

  1. 创建一个扇出交换,或者如果他未绑定到任何队列,则使用默认交换(amq.fanout)
  2. 将参考队列绑定到它
  3. 将“重复”队列绑定到它
  4. 配置一个铲子,将参考队列中的所有消息发送到绑定到两个队列的交换上,将自动删除设置为“传输初始长度后”

但这确实意味着,如果消息通过其正常流到达参考队列,它们将最终出现在队列的顶部,而“复制的”消息则在后面/与它们混合在一起。

答案 1 :(得分:1)

Go to http://localhost:15672/#/queues 1. create vhost (vhost=testhost) 2. create two queue using vhost( Test1, Test2) 3. Create exchange Test_exchnage: http://localhost:15672/#/exchanges 4. bind these queue(Test1 & Test2) on Test_exchnage 5. install shovel 6. sudo rabbitmq-plugins enable rabbitmq_shovel 7. sudo rabbitmq-plugins enable rabbitmq_shovel_management 8. add shovel using admin shovel tab URI: amqp://{user}:{pass}@{localhost}:5672/vhost(this is for reference queue which u want to create copy, vhost if it has ) source Destination URI: amqp://user:pass@localhost:5672/Test_exchnage Queue Name: “Test_exchnage” you can can send msg to your reference queue.

答案 2 :(得分:0)

有一个商业工具QueueExplorer(免责声明-我是作者),它可以让您复制消息以及其他内容。

答案 3 :(得分:0)

如果交换是直接交换,只需使用相同的路由密钥创建另一个队列