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

2024-06-16 08:31:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

即使我将hostinconnectionparameters设置为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'})

是否有指定托管节点的接口?有别的办法处理这个案子吗?在

谢谢!在


Tags: false参数节点队列queue编程channelrabbitmq
2条回答

集群通常定义在不同的主机上,或者在同一主机上有不同的端口(see docs for more on this)。在

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

我找不到任何参数来指定将在集群队列中的哪个节点上创建,但我对此进行了详细介绍。假设集群中有两个节点兔子@node1以及兔子@node2,您只需指定:

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

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

相关问题 更多 >