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

w8f9ii69  于 12个月前  发布在  RabbitMQ
关注(0)|答案(4)|浏览(272)

使用RabbitMQ作为代理,我想将所有消息从一个队列复制到另一个队列,用于测试/调试目的。通过RabbitMQ Web管理控制台/SDK最简单的方法是什么?
P.S.在指定队列的Web控制台下,我只能 * 移动消息 * 而不是 * 复制消息 * 到新队列。

rlcwz9us

rlcwz9us1#

当我需要执行这样的任务时,我会执行以下操作(假设您希望从引用队列中复制所有消息):
1.创建一个fanout交换或使用默认的(amq.fanout)如果他没有绑定到任何队列
1.将引用队列绑定到它
1.将“重复”队列绑定到它
1.配置一个shovel,将引用队列中的所有消息发送到您绑定到两个队列的交换机,自动删除设置为“传输初始长度后”
但这确实意味着,如果消息通过引用队列的正常流到达引用队列,则它们将最终位于队列的顶部,而“复制”消息则位于它们的后面/与它们混在一起

niknxzdl

niknxzdl2#

转到http://localhost:15672/#/queues
1.创建vhost(vhost=testhost)
1.使用vhost创建两个队列(Test1,Test 2)
1.创建exchange Test_exchange:http://localhost:15672/#/exchanges
1.在Test_exchange上绑定这些队列(Test1和Test 2)
1.安装电铲

  1. sudo rabbitmq-plugins enable rabbitmq_shovel
  2. sudo rabbitmq-plugins enable rabbitmq_shovel_management
  • 使用管理铲选项卡添加铲
  • URI:amqp://{user}:{pass}@{localhost}:5672/vhost(这是你要创建副本的引用队列,如果有,则为vhost)source

目标URI:amqp://user:pass@localhost:5672/Test_exchnage
队列名称:“Test_exchange”
你可以发送消息到你的参考队列。

0ejtzxu1

0ejtzxu13#

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

pn9klfpd

pn9klfpd4#

有一个商业工具,QueueExplorer(免责声明-我是作者),它允许你复制消息,以及其他事情。

相关问题