私はrabbitmqノードに高可用性を設定したいのですが、現在rabbitmqを実行しているサーバーが1つありますが、もう1つ追加する予定です。これがnodejsアプリケーションで現在使用している構成です。
rabbitMQ: {
url: 'amqp://user:password@node1:5672'
},
1) 両方の rabbitmq ノード (node1 と node2) にクラスターを設定する必要がありますか?
2) 設定ファイルに含める必要がある新しい URL は何ですか?
答え1
RabbitMQチームは監視していますこのメーリングリストStackOverflow で質問に回答するのはたまにだけです。
使用している RabbitMQ のバージョン、Erlang のバージョン、オペレーティング システム、または Node.js ライブラリに関する詳細が提供されていません。今後は、人々が簡単に支援できるように、常にこのような詳細を提供してください。
RabbitMQクラスタリングは初めてなので、そのドキュメントを読むことを強くお勧めします。 https://www.rabbitmq.com/clustering.html
両方の rabbitmq ノード (node1 と node2) にクラスターを設定する必要がありますか?
両方のノードで同じバージョンの RabbitMQ と Erlang が実行されている必要があります。ドキュメントに従って、1 つのノードでクラスタリング コマンドを実行してクラスターを作成します。成功した場合は、rabbitmqctl cluster_status
コマンドにその旨が表示されます。
2) 設定ファイルに含める必要がある新しい URL は何ですか?
あなたが使用しているのはsquaremo/amqp.nodeライブラリ。このライブラリは接続URIに複数のホストを提供することをサポートしていません。これを自分で実装する必要があり、接続回復も自分で実装する必要があります。このGitHubの問題。
しかし、複数のノードと再接続をサポートするライブラリが1つあります。rascal
rascal
そこからコードを使用することも、借用することもできます(ここでは、例えば)。