0

2 つのノードを持つ rabbitmq クラスターがあります。ノード 1 でホストされるいくつかのキューを作成し、ノード 2 でホストされる他のキューを作成したいと考えています。

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 に 2 つのノードがあると仮定すると、次のように簡単に指定できます。

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

これにより、ノード 1 にのみ残るキューが作成されます。

于 2013-01-15T19:58:53.710 に答える
0

クラスターは通常、異なるホスト上で、または同じホスト上の異なるポートで定義されます(これについて詳しくは、ドキュメントを参照してください)。

の一部として、ホストとポート番号の両方を定義できますpika.connection.ConnectionParameters

于 2013-01-04T20:47:23.190 に答える