我想知道是否可以将消息从一个队列移动/合并到另一个队列。例如:
main-queue包含消息['cat-1','cat-2','cat-3','cat-4','dog-1','dog-2','cat-5']
dog-queue包含消息['dog-1, dog-2, dog-3, dog-4]
所以问题是,(假设两个队列都在同一个集群上,vhost)是否可以使用rabbitmqctl将消息从dog-queue移动到main-queue?
所以在最后,我希望得到这样的结果:
理想情况下:
main-queue:['cat-1','cat-2','cat-3','cat-4','dog-1','dog-2','cat-5', dog-3, dog-4]
但这也没问题:
main-queue:['cat-1','cat-2','cat-3','cat-4','dog-1','dog-2','cat-5', 'dog-1, dog-2, dog-3, dog-4]
发布于 2014-11-08 14:55:27
您正在/我们正在寻找的是“shovel”插件。内核中内置了shovel插件,但您必须显式启用它。它真的很容易使用,因为它为你做了所有的事情(不需要手动消费/重新发布到另一个队列)。
通过cli启用铲子插件:
sudo rabbitmq-plugins enable rabbitmq_shovel如果您通过图形用户界面管理RabbitMQ,请同时安装shovel管理插件:
sudo rabbitmq-plugins enable rabbitmq_shovel_management登录到GUI,您将看到Admin部分下的Shovel Management。您可以创建铲子,将消息从任何队列移动到另一个队列,甚至远程托管的队列。你可以在它完成时删除它,或者把它留在那里,它会在消息进来的时候不断地移动它们。
如果您通过命令行工具管理RabbitMQ,则可以直接从rabbitmqctl执行shovel:
sudo rabbitmqctl set_parameter shovel cats-and-dogs \
'{"src-uri": "amqp://user:pass@host/vhost", "src-queue": "dog-queue", \
"dest-uri": "amqp://user:pass@host/vhost", "dest-queue": "main-queue"}'官方插件文档:
https://stackoverflow.com/questions/17075116
复制相似问题