首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在RabbitMQ队列之间移动/合并邮件?

是否可以在RabbitMQ队列之间移动/合并邮件?
EN

Stack Overflow用户
提问于 2013-06-13 04:50:36
回答 1查看 14.5K关注 0票数 7

我想知道是否可以将消息从一个队列移动/合并到另一个队列。例如:

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]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-08 14:55:27

您正在/我们正在寻找的是“shovel”插件。内核中内置了shovel插件,但您必须显式启用它。它真的很容易使用,因为它为你做了所有的事情(不需要手动消费/重新发布到另一个队列)。

通过cli启用铲子插件:

代码语言:javascript
复制
sudo rabbitmq-plugins enable rabbitmq_shovel

如果您通过图形用户界面管理RabbitMQ,请同时安装shovel管理插件:

代码语言:javascript
复制
sudo rabbitmq-plugins enable rabbitmq_shovel_management

登录到GUI,您将看到Admin部分下的Shovel Management。您可以创建铲子,将消息从任何队列移动到另一个队列,甚至远程托管的队列。你可以在它完成时删除它,或者把它留在那里,它会在消息进来的时候不断地移动它们。

如果您通过命令行工具管理RabbitMQ,则可以直接从rabbitmqctl执行shovel:

代码语言:javascript
复制
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://www.rabbitmq.com/shovel.html

创建铲子- https://www.rabbitmq.com/shovel-dynamic.html

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17075116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档