nodejs 中 Rabbitmq 的高可用性和故障转移

nodejs 中 Rabbitmq 的高可用性和故障转移

我想在 RabbitMQ 节点上设置高可用性,目前我有一个运行 RabbitMQ 的服务器,但我将添加另一个服务器这是我们在 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。您可以按照文档在一个节点上运行集群命令来创建集群。如果成功,命令rabbitmqctl cluster_status会显示成功。

2)我需要在配置文件中包含哪些新的 URL

我假设你正在使用squaremo/amqp.node库。该库不支持在连接 URI 中提供多个主机。您必须自己实现这一点,并且还必须自己实现连接恢复。请参阅这个 GitHub 问题

然而,有一个库确实支持多个节点和重新连接,它被称为rascal。您可以使用rascal或借用其中的代码(例如这里)。

相关内容