首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集群中的RabbitMQ铁铲插件

集群中的RabbitMQ铁铲插件
EN

Stack Overflow用户
提问于 2019-02-05 15:49:34
回答 1查看 1.1K关注 0票数 2

我们有一个配置了三个节点的RabbitMQ集群。每个节点都有两个虚拟主机(Vhost-A和Vhost-B)。我们需要一种将消息从Vhost-A移动到Vhost-B的可能性。为此,我们设置了一个工具,将消息从Vhost-A上的Exchange-1定向到Vhost-B上的Exchange-2。

代码语言:javascript
复制
rabbitmqctl -p Vhost-A set_parameter shovel shovel-exchange-1-to-vhost-b /
  '{"src-uri": "amqp://user@/Vhost-A", "src-exchange": "Exchange-1", /
    "src-exchange-key": "#", "dest-uri": "amqp://user@/Vhost-B", /
    "dest-exchange": "Exchange-2", "add-forward-headers": false, /
    "ack-mode": "on-confirm", "delete-after": "never"}'

这会产生在目标Exchange-2上复制邮件的副作用。这意味着,我们绑定到Vhost-B上的Exchange-2的测试队列会收到三次相同的消息(每个群集节点一次)。

我们如何防止这种情况发生?是否需要在铲子配置或集群配置中进行更改?

RabbitMQ版本: 3.6.15

更新1:

我们有两个无法删除的独占队列,因为它们是锁定的。一旦我们在所有集群节点上禁用了铲子插件,这些队列就会消失。一旦我们在一个节点上重新激活插件,队列就会再次创建。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 21:27:04

这似乎是一个配置错误。我手动测试了铲子插件,并且我必须已经将铲子配置添加到根('/')虚拟主机中。由于某些原因,这些没有显示在管理控制台中。使用

代码语言:javascript
复制
rabbitmqctl list_parameters

我在根虚拟主机上看到了两个额外的铲子配置。在丢弃这些铲子之后,相应的队列也被删除。按照问题中的描述添加铲子添加了铲子并创建了一个队列。从那时起,消息只转发一次。

感谢你@Olivier暗示了多把铲子。这句话让我走上了正确的道路。

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

https://stackoverflow.com/questions/54529799

复制
相关文章

相似问题

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