Node.js の Rabbitmq での高可用性、フェイルオーバー

Node.js の Rabbitmq での高可用性、フェイルオーバー

私は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つあります。rascalrascalそこからコードを使用することも、借用することもできます(ここでは、例えば)。

関連情報