Python Pika和RabbitMQ-在特定节点上创建队列

Python Pika和RabbitMQ-在特定节点上创建队列,python,rabbitmq,amqp,pika,Python,Rabbitmq,Amqp,Pika,我有一个带有两个节点的rabbitmq集群。我想创建一些要托管在node1上的队列,以及托管在node2上的其他队列 即使我将主机in-ConnectionParameters设置为node2,队列仍将在node1上创建 在编程方面,我不知道如何使用pika来指定我希望在其上创建队列的节点。queue\u declare中没有这样的参数,这样传入参数似乎不起作用: channel.queue_declare(queue="whereami", durable=True, exclusive=Fa

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

即使我将主机in-ConnectionParameters设置为node2,队列仍将在node1上创建

在编程方面,我不知道如何使用pika来指定我希望在其上创建队列的节点。
queue\u declare
中没有这样的参数,这样传入参数似乎不起作用:

channel.queue_declare(queue="whereami", durable=True, exclusive=False, auto_delete=False, callback=on_queue_declared, arguments= {'node':'rabbit@node1'})
是否有用于指定托管节点的接口?还有别的办法处理这个案子吗


谢谢

集群通常在不同的主机上定义,或者在同一主机上使用不同的端口()


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

我找不到任何参数来指定将在集群队列中的哪个节点上创建,但我有一个关于这个的介绍。假设集群中有两个节点rabbit@node1及rabbit@node2,您只需指定:

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

这将创建仅在节点1上剩余的队列。

这不起作用。它仍将作为一个整体连接到集群,并在主机上创建主机。比如,如果集群中有node1和node2,并且连接到ConnectionParameters中的node2,它仍然会在node1上创建队列。队列中肯定有东西需要声明。你能更具体地说明一下你的集群设置吗?1.这些节点是在单独的物理机器上,还是在具有不同端口的同一机器上?2.它们是否配置为高可用性,是主动/主动还是主动/被动设置?当然!它们位于两台独立的物理机器上,都是磁盘节点。它们没有配置为高可用性。基本上,两个不同的业务组使用两个不同的节点。它们聚集在一起,以便共享相同的交换。保持它们的队列分开意味着,如果一个组的程序停止确认消息,它只会在队列填满并占用磁盘空间时影响该组。