0

我有一个带有两个节点的 rabbitmq 集群。我想创建一些要托管在 node1 上的队列,以及托管在 node2 上的其他队列。

即使我将 ConnectionParameters 中的主机设置为 node2,队列仍将最终在 node1 上创建。

以编程方式,我不确定如何使用 pika 指定要在其上创建队列的节点。中没有这样的参数queue_declare,并且像这样传递参数似乎不起作用:

channel.queue_declare(queue="whereami", durable=True, exclusive=False, auto_delete=False, callback=on_queue_declared, arguments= {'node':'rabbit@node1'})

有没有指定托管节点的接口?有没有其他方法可以处理这种情况?

谢谢!

4

2 回答 2

1

我找不到任何参数来指定将在集群队列中的哪个节点上创建,但我对此有所了解。假设您在集群 rabbit@node1 和 rabbit@node2 中有两个节点,您可以简单地指定:

arguments["x-ha-policy"] = "nodes"
arguments["x-ha-policy-params"] = 'rabbit@node1'

这将创建仅保留在 node1 上的队列。

于 2013-01-15T19:58:53.710 回答
0

集群通常在不同的主机上定义,或者在同一主机上具有不同的端口(有关更多信息,请参阅文档)。

可以将主机和端口号定义为pika.connection.ConnectionParameters.

于 2013-01-04T20:47:23.190 回答