【问题标题】:RabbitMQ installing multiple services on windows machineRabbitMQ 在 Windows 机器上安装多个服务
【发布时间】:2018-08-23 12:49:09
【问题描述】:

我知道关于我的问题有很多资源,但我仍然无法弄清楚在单个 Windows 机器上安装 RabbitMQ 的 2 个服务的确切方法。

我知道有两种方法可以运行rabbitmq。作为服务或应用程序。当我们安装 RMQ 时,它会默认安装一个名为“RabbitMQ”的服务,我们可以随时运行它。以及您可以使用以下命令并运行另一个 RMQ 实例的其他方式。

set RABBITMQ_NODE_PORT=5673
set RABBITMQ_NODENAME=test1
set RABBITMQ_SERVICE_NAME=test1
set RABBITMQ_SERVER_START_ARGS=-rabbitmq_management listener [{port,15673}]
call rabbitmq-server -detached

使用上述命令,我可以运行第二个实例,但一旦用户注销,RMQ 就会停止。所以我尝试创建bat文件并将其注册为服务并启动它。但即使在此之后,RMQ 也会随着用户注销而停止。

有人可以帮助我在 Windows 机器上复制以运行持久的第二个 RMQ 实例(可能是 bat 文件或任何其他指南)的确切步骤吗?

有没有办法修改rabbitmq-service.bat 以适应上述变量变化?

我访问了几乎所有关于安装多个 RMQ 实例的网站,但没有人明确定义这样做的细粒度步骤。

【问题讨论】:

  • Rabbitmq 与单独的 vhost 具有良好的隔离性 - 即,如果服务器有额外的容量,为什么不运行具有多个 vhost 的单个服务器?
  • 感谢您的回复。但我想使用 HA 功能。如果 rmq 节点关闭,则两个 vhost 都关闭。希望它能消除我的担忧。有什么方法可以注册两个服务,我可以从 Windows 服务管理器启动和停止?
  • 如果你问我,在同一台机器上运行 2 个实例仍然只是单点故障。 HA 真的应该分散到多台机器上。

标签: windows rabbitmq rabbitmqctl


【解决方案1】:

您应该仔细阅读此文档:link

首先,在您的服务器上使用一个管理用户“正常”安装 RMQ 作为 Windows 服务,无需任何自定义或环境配置。

然后,创建第二个管理帐户,并执行以下操作:

使用这些内容创建文件%AppData%\RabbitMQ\rabbitmq-env-conf.bat 文件(确保将HOSTNAME 替换为您的实际主机名!):

set SERVICENAME=RabbitMQ Server (2)
set NODENAME=rabbit2@HOSTNAME
set NODE_PORT=5673

使用以下内容创建文件%AppData%\RabbitMQ\rabbitmq.conf

management.listener.port = 15673

打开“RabbitMQ 命令提示符 (sbin)”命令提示符,并运行以下命令:

rabbitmq-service.bat install
rabbitmq-service.bat start

您应该会在服务管理器中看到第二个服务正在运行。

请注意,我根本没有测试过这些步骤。如果您遇到问题,我很乐意在邮件列表中提供进一步帮助。谢谢。


注意:RabbitMQ 团队会监控 the rabbitmq-users mailing list,并且有时只会回答 * 上的问题。

【讨论】:

    【解决方案2】:

    您只需要更改rabbitmq-defaultsrabbitmq-env 和配置文件中的端口和节点名称。默认情况下可以作为服务运行,您可以在更改端口和节点名称后下载并创建服务。

    Here 是有关如何执行此操作的详细指南。这非常简单明了。

    【讨论】: