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

问题描述 投票:2回答:3

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

P.S.在指定队列的web控制台下,我只可以看到 移动信息 而不是 复制信息 到新队列。

rabbitmq message-queue amqp rabbitmqctl
3个回答
5
投票

当我需要执行这样的任务时,我的做法如下(假设你想从你的参考队列中复制所有的消息)。

  1. 创建一个fanout交换或使用默认的(amq.fanout) 如果他没有绑定到任何队列上
  2. 绑定参考队列
  3. 绑定 "重复 "队列。
  4. 配置铲子将参考队列中的所有消息发送到你绑定到两个队列的交易所。自动删除设置为 "初始长度转移后"

但这确实意味着,如果消息通过正常的流程到达参考队列,它们将被放在队列的顶部,而 "复制 "的消息将与它们混合在一起。


1
投票

 进入http:/localhost:15672#queues 1.创建vhost(vhost=testhost) 2.使用vhost( Test1, Test2)创建两个队列 3. 创建exchange Test_exchnage: http:/localhost:15672#exchanges 4.在Test_exchnage上绑定这些队列(Test1 & Test2) 5.安装shovel 6.sudo rabbitmq-plugins enable rabbitmq_shovel 7.sudo rabbitmq-plugins enable rabbitmq_shovel_management 8. 添加铲子使用管理员铲子选项卡URI: amqp:/{user}:{pass}@{localhost}:5672vhost(这是参考队列,你要创建副本,vhost如果它有)sourceDestinationURI: amqp:/user:pass@localhost:5672Test_exchnageQueue名称。"Test_exchnage "你可以可以发送msg到你的参考队列。

0
投票

有一个商业工具。QueueExplorer (免责声明--我是作者),允许你复制消息,除此之外。

© www.soinside.com 2019 - 2024. All rights reserved.