跳到主要内容
版本:4.1

在 Windows 上安装

概述

本指南介绍了在 Windows 上安装 RabbitMQ 的方法。重点介绍两种推荐的安装选项

本指南还介绍了 Windows 环境下的一些安装后主题

以及更多。这些主题在其他文档指南中进行了更详细的介绍。

另一份配套指南介绍了已知的Windows 配置以及缓解方法。

使用 chocolatey

RabbitMQ 软件包通过 Chocolatey 分发。新版本可能需要一段时间(有时是几周)才能通过审批,因此不保证此选项能提供最新版本。但是,它确实管理了所需的依赖项。

要使用 Chocolatey 安装 RabbitMQ,请从命令行或 PowerShell 运行以下命令

choco install rabbitmq

对于许多用例,Chocolatey 是最佳安装方法。

Chocolatey RabbitMQ 软件包是开源的,可以在 GitHub 上找到

使用安装程序

官方 RabbitMQ 安装程序是为每个 RabbitMQ 版本制作的。

通过 Chocolatey 安装相比,此选项为 Windows 用户提供了最大的灵活性,但也要求他们了解安装程序中的某些假设和要求

  • 一次只能安装一个 Erlang 版本
  • 必须使用管理员帐户安装 Erlang
  • 强烈建议也以管理员帐户身份安装 RabbitMQ
  • 安装路径必须只包含 ASCII 字符。强烈建议路径中的任何目录名都不要包含空格。
  • 可能需要手动复制 CLI 工具使用的共享密钥文件
  • CLI 工具需要 Windows 控制台以 UTF-8 模式运行

当不满足这些条件时,Windows 服务和 CLI 工具可能需要重新安装或其他手动步骤才能使其按预期运行。

这在Windows 配置指南中有更详细的介绍。

依赖项

RabbitMQ 需要安装 64 位支持的 Erlang 版本 for Windows。

可以从 Erlang/OTP 版本树页面获取适用于 Windows 的最新 Erlang 二进制构建版本。

必须使用管理员帐户安装 Erlang,否则 RabbitMQ Windows 服务将无法发现它。安装受支持的 Erlang 版本后,下载 RabbitMQ 安装程序 rabbitmq-server-{version}.exe 并运行它。它会将 RabbitMQ 安装为 Windows 服务,并使用默认配置启动它。

直接下载

描述下载签名
适用于 Windows 系统的安装程序(来自 GitHubrabbitmq-server-4.1.0.exe签名

运行 RabbitMQ Windows 服务

一旦 Erlang 和 RabbitMQ 都已安装,RabbitMQ 节点就可以作为 Windows 服务启动。RabbitMQ 服务会自动启动。可以从“开始”菜单管理 RabbitMQ Windows 服务。

CLI 工具

RabbitMQ 节点通常使用 CLI 工具PowerShell 中进行管理、检查和操作。

在 Windows 上,与其他平台相比,CLI 工具具有 .bat 后缀。例如,Windows 上的 rabbitmqctlrabbitmqctl.bat 的形式调用。

为了使这些工具能够工作,它们必须能够使用名为 Erlang cookie 的共享密钥文件与 RabbitMQ 节点进行身份验证

主要的CLI 工具指南涵盖了与命令行工具使用相关的大多数主题。

为了探索各种 RabbitMQ CLI 工具提供的命令,请使用 help 命令

# lists commands provided by rabbitmqctl.bat
rabbitmqctl.bat help

# lists commands provided by rabbitmq-diagnostics.bat
rabbitmq-diagnostics.bat help

# ...you guessed it!
rabbitmq-plugins.bat help

要了解有关特定命令的信息,请将其名称作为参数传递给 help

rabbitmqctl.bat help add_user

在 Windows 上,cookie 文件位置取决于是否设置了 HOMEDRIVEHOMEPATH 环境变量。

如果 RabbitMQ 是使用非管理员帐户安装的,则节点和 CLI 工具使用的共享密钥文件将不会放置在正确的位置,从而在使用 rabbitmqctl.bat 和其他 CLI 工具时导致身份验证失败

可以使用以下选项之一来缓解

  • 使用管理员用户重新安装 RabbitMQ
  • 手动将文件 .erlang.cookie%SystemRoot%%SystemRoot%\system32\config\systemprofile 复制到 %HOMEDRIVE%%HOMEPATH%

节点配置

该服务使用其默认设置启动,侦听默认接口端口上的连接。

节点配置主要使用配置文件完成。许多可用的环境变量可用于控制节点的数据位置、配置文件路径等。

这在配置指南中有更详细的介绍

Windows 上的环境变量更改

重要提示:设置环境变量后,必须重新安装 Windows 服务。重新启动服务是不够的。

管理 RabbitMQ 节点

管理服务

可以在“开始”菜单中找到 RabbitMQ 目录的链接。

“开始”菜单中还有一个指向命令提示符窗口的链接,该窗口将在 sbin 目录中启动。这是运行命令行工具的最便捷方式。

请注意,CLI 工具必须对目标 RabbitMQ 节点进行身份验证

停止节点

要停止 broker 或检查其状态,请在 sbin 中使用 rabbitmqctl.bat(以管理员身份)。

rabbitmqctl.bat stop

检查节点状态

以下CLI 命令运行基本的健康检查,并在节点运行时显示有关节点的一些信息。

# A basic health check of both the node and CLI tool connectivity/authentication
rabbitmqctl.bat status

要使其工作,必须满足两个条件

  • 节点必须正在运行
  • rabbitmqctl.bat 必须能够与节点进行身份验证

请参阅CLI 工具部分监控和健康检查指南以了解更多信息。

日志文件和管理

服务器日志对于故障排除和根本原因分析至关重要。请参阅日志记录文件和目录位置指南,以了解有关日志文件位置、日志轮换等的更多信息。

防火墙和安全工具

防火墙和安全工具可能会阻止 RabbitMQ Windows 服务和 CLI 工具正常运行。

应将此类工具配置为将对RabbitMQ 使用的端口的访问列入白名单。

默认用户访问

broker 创建了一个用户 guest,密码为 guest。未配置的客户端通常会使用这些凭据。默认情况下,这些凭据只能在连接到 localhost 的 broker 时使用,因此您需要在从任何其他计算机连接之前采取措施。

有关如何创建更多用户和删除 guest 用户的信息,请参阅有关访问控制的文档。

端口访问

RabbitMQ 节点绑定到端口(打开服务器 TCP 套接字)以接受客户端和 CLI 工具连接。其他进程和工具(如防病毒软件)可能会阻止 RabbitMQ 绑定到端口。发生这种情况时,节点将无法启动。

CLI 工具、客户端库和 RabbitMQ 节点也会打开连接(客户端 TCP 套接字)。防火墙可能会阻止节点和 CLI 工具相互通信。确保以下端口可访问

  • 4369:epmd,RabbitMQ 节点和 CLI 工具使用的对等发现服务
  • 5672、5671:供 AMQP 0-9-1 和 1.0 客户端使用,分别用于不使用 TLS 和使用 TLS 的情况
  • 25672:用于节点间和 CLI 工具通信(Erlang 分布式服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为 AMQP 端口 + 20000)。除非确实需要这些端口上的外部连接(例如,集群使用联合或 CLI 工具在子网外部的计算机上使用),否则不应公开这些端口。有关详细信息,请参阅网络指南
  • 35672-35682:供 CLI 工具(Erlang 分布式客户端端口)用于与节点通信,并从动态范围分配(计算为服务器分布式端口 + 10000 到服务器分布式端口 + 10010)。有关详细信息,请参阅网络指南
  • 15672:HTTP API 客户端、管理 UIrabbitmqadmin(仅当管理插件启用时)
  • 61613、61614:不使用 TLS 和使用 TLS 的 STOMP 客户端(仅当STOMP 插件启用时)
  • 1883、8883:不使用 TLS 和使用 TLS 的 MQTT 客户端,如果MQTT 插件已启用
  • 15674:STOMP-over-WebSockets 客户端(仅当Web STOMP 插件启用时)
  • 15675:MQTT-over-WebSockets 客户端(仅当Web MQTT 插件启用时)

可以配置 RabbitMQ 以使用不同的端口和特定的网络接口

升级 Erlang VM

如果您现有安装并计划将 Erlang VM 从 32 位版本升级到 64 位版本,则必须在升级 VM 之前卸载 broker。安装程序将无法停止或删除使用不同架构的 Erlang VM 安装的服务。

以服务方式运行时转储文件位置

如果 Erlang VM 在 RabbitMQ 作为服务运行时终止,它不会将崩溃转储写入当前目录(对于服务来说没有意义),而是写入 RabbitMQ 服务器的基本目录中的 erl_crash.dump 文件,默认为 %APPDATA%\%RABBITMQ_SERVICENAME% - 通常为 %APPDATA%\RabbitMQ

© . All rights reserved.