RabbitMQ中的多个联合策略

RabbitMQ中的多个联合策略,rabbitmq,message-queue,Rabbitmq,Message Queue,我有许多RabbitMQ服务器有效地排列在星形拓扑中。我需要在中央集线器服务器和每个外部服务器之间双向联合不同的交换。外部服务器的配置没有问题,但尽管交换不同,但中心不希望接受多个联合策略 按预期定义多个上游和上游集: $ rabbitmqctl list_parameters Listing runtime parameters ... federation-upstream-set leaf1 [{"upstream":"leaf1-1"}] federation-upstream

我有许多RabbitMQ服务器有效地排列在星形拓扑中。我需要在中央集线器服务器和每个外部服务器之间双向联合不同的交换。外部服务器的配置没有问题,但尽管交换不同,但中心不希望接受多个联合策略

按预期定义多个上游和上游集:

$ rabbitmqctl list_parameters
Listing runtime parameters ...
federation-upstream-set leaf1      [{"upstream":"leaf1-1"}]
federation-upstream-set leaf2 [{"upstream":"leaf2-1"}]
federation-upstream     leaf2-1      {"uri":"--snipped--","expires":3600000}
federation-upstream     leaf1-1   {"uri":"--snipped--","expires":3600000}
...done.
$ rabbitmqctl set_policy --apply-to exchanges federate-me "^leaf1$" '{"federation-upstream-set":"leaf1"}'
Setting policy "federate-me" for pattern "^leaf1$" to "{\"federation-upstream-set\":\"leaf1\"}" with priority "0" ...
...done.
$ rabbitmqctl list_policies
Listing policies ...
/       federate-me     exchanges       ^leaf1$        {"federation-upstream-set":"leaf1"}   0
...done.
第一个联合会策略按预期应用:

$ rabbitmqctl list_parameters
Listing runtime parameters ...
federation-upstream-set leaf1      [{"upstream":"leaf1-1"}]
federation-upstream-set leaf2 [{"upstream":"leaf2-1"}]
federation-upstream     leaf2-1      {"uri":"--snipped--","expires":3600000}
federation-upstream     leaf1-1   {"uri":"--snipped--","expires":3600000}
...done.
$ rabbitmqctl set_policy --apply-to exchanges federate-me "^leaf1$" '{"federation-upstream-set":"leaf1"}'
Setting policy "federate-me" for pattern "^leaf1$" to "{\"federation-upstream-set\":\"leaf1\"}" with priority "0" ...
...done.
$ rabbitmqctl list_policies
Listing policies ...
/       federate-me     exchanges       ^leaf1$        {"federation-upstream-set":"leaf1"}   0
...done.
但只要我尝试指定第二个联合策略,它就会简单地替换第一个:

$ rabbitmqctl set_policy --apply-to exchanges federate-me "^leaf2$" '{"federation-upstream-set":"leaf2"}'
Setting policy "federate-me" for pattern "^leaf2$" to "{\"federation-upstream-set\":\"leaf2\"}" with priority "0" ...
...done.
$ rabbitmqctl list_policies
Listing policies ...
/       federate-me     exchanges       ^leaf2$        {"federation-upstream-set":"leaf2"}   0
...done.
如果我为这两项政策指定了不同的优先级,这也无关紧要;无论我做什么,都只列出最近输入的单个联合策略。我知道每个exchange只能应用一个策略,但此处每个策略的exchange规范不同,而且文档表明,如果存在多个匹配策略,则具有最高优先级的策略应获胜


有人能帮忙吗?

您必须为要添加的每个策略指定唯一的名称。使用现有名称设置不同的策略只会覆盖使用该名称的现有策略。

您必须为要添加的每个策略指定唯一的名称。使用现有名称设置不同的策略只会覆盖使用该名称的现有策略。

您必须为要添加的每个策略指定唯一的名称。使用现有名称设置不同的策略只会覆盖使用该名称的现有策略。

您必须为要添加的每个策略指定唯一的名称。使用现有名称设置不同的策略只会覆盖使用该名称的现有策略。

如果其他人犯了我犯的错误,只需发表评论:“联合我”在各种可用示例中并不是一个神奇的标记,这是该策略的任意名称。我们在文档中添加了一个注释,指出“联邦成员我”只是一个名称,您可以为您的策略提供任何帮助,请?:)感谢您发表评论,以防其他人犯我所犯的错误。在各种可用示例中,“federate me”不是一个魔术标记,它是策略的任意名称。我们在文档中添加了一个注释,指出federate me只是一个名称,您可以为您的策略提供任何帮助吗?:)感谢您发表评论,以防其他人犯我所犯的错误。在各种可用示例中,“federate me”不是一个魔术标记,它是策略的任意名称。我们在文档中添加了一个注释,指出federate me只是一个名称,您可以为您的策略提供任何帮助吗?:)感谢您发表评论,以防其他人犯我所犯的错误。在各种可用示例中,“federate me”不是一个魔术标记,它是策略的任意名称。我们在文档中添加了一个注释,指出federate me只是一个名称,您可以为您的策略提供任何帮助吗?:)感谢我们在我们的文档中添加了一个注释,提到“联邦成员我”只是您可以为您的策略提供的名称我们在我们的文档中添加了一个注释,提到“联邦成员我”只是您可以为您的策略提供的名称我们在我们的文档中添加了一个注释,提到“联邦成员我”只是您可以为您的策略提供的名称我们在我们的文档中添加了一个注释提到“联邦成员我”只是您可以为您的策略提供的名称