在 Windows 上安装
概述
本指南介绍如何在 Windows 上安装 RabbitMQ。它侧重于两种推荐的安装选项
- 使用 Chocolatey
- 使用官方安装程序 作为管理员用户
本指南还介绍了 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 需要安装 Windows 的 64 位 支持的 Erlang 版本。
可以在 Erlang/OTP 版本树 页面上获得最新版本的 Windows Erlang 二进制版本。
Erlang **必须使用管理员帐户安装**,否则 RabbitMQ Windows 服务无法发现它。安装支持的 Erlang 版本后,下载 RabbitMQ 安装程序,rabbitmq-server-{version}.exe
并运行它。它将 RabbitMQ 安装为 Windows 服务并使用默认配置启动它。
直接下载
描述 | 下载 | 签名 |
---|---|---|
适用于 Windows 系统的安装程序(来自 GitHub) | rabbitmq-server-4.0.2.exe | 签名 |
运行 RabbitMQ Windows 服务
安装 Erlang 和 RabbitMQ 后,RabbitMQ 节点可以作为 Windows 服务启动。RabbitMQ 服务会自动启动。RabbitMQ Windows 服务可以在“开始”菜单中进行管理。
CLI 工具
RabbitMQ 节点通常使用 CLI 工具 在 PowerShell 中进行管理、检查和操作。
在 Windows 上,CLI 工具与其他平台相比具有 .bat
后缀。例如,Windows 上的 rabbitmqctl
被调用为 rabbitmqctl.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
Cookie 文件位置
在 Windows 上,cookie 文件位置 取决于是否设置了 HOMEDRIVE
和 HOMEPATH
环境变量。
如果使用非管理员帐户安装 RabbitMQ,则节点和 CLI 工具使用的 共享密钥 文件不会被放置到正确的位置,这会导致 身份验证失败,当使用 rabbitmqctl.bat
和其他 CLI 工具时。
可以使用以下选项之一进行缓解
- 使用管理员用户重新安装 RabbitMQ
- 将文件
.erlang.cookie
手动从%SystemRoot%
或%SystemRoot%\system32\config\systemprofile
复制到%HOMEDRIVE%%HOMEPATH%
。
节点配置
服务使用它的默认 设置 启动,监听 默认接口 和 端口 上的连接。
节点配置主要使用 配置文件 完成。许多可用的 环境变量 可用于控制节点的 数据位置、配置文件路径等等。
这在 配置指南 中有更详细的介绍
Windows 上的环境变量更改
重要事项:设置环境变量后,必须 重新安装 Windows 服务。重新启动服务是不够的。
管理 RabbitMQ 节点
管理服务
可以在“开始”菜单中找到指向 RabbitMQ 目录的链接。
在“开始”菜单中,还有一个指向在 sbin 目录中启动的命令提示符窗口的链接。这是运行 命令行工具 的最便捷方式。
请注意,CLI 工具必须 对目标 RabbitMQ 节点进行身份验证。
停止节点
若要停止代理或检查其状态,请在 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 使用的端口 的访问列入白名单。
默认用户访问
代理创建了一个名为 guest
的用户,密码为 guest
。未配置的客户端通常会使用这些凭据。**默认情况下,这些凭据只能在以 localhost 身份连接到代理时使用**,因此您需要在从任何其他机器连接之前采取措施。
请参阅有关 访问控制 的文档,了解如何创建更多用户以及删除 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 客户端、管理界面 和 rabbitmqadmin(仅在启用 管理插件 时)。
- 61613, 61614: STOMP 客户端,不使用 TLS 和使用 TLS(仅在启用 STOMP 插件 时)。
- 1883, 8883: MQTT 客户端,不使用 TLS 和使用 TLS,如果启用了 MQTT 插件。
- 15674: STOMP-over-WebSockets 客户端(仅在启用 Web STOMP 插件 时)。
- 15675: MQTT-over-WebSockets 客户端(仅在启用 Web MQTT 插件 时)。
可以 配置 RabbitMQ 以使用 不同的端口和特定的网络接口。
升级 Erlang VM
如果您有现有的安装,并且计划将 Erlang VM 从 32 位版本升级到 64 位版本,那么您必须在升级 VM 之前卸载代理。安装程序将无法停止或删除使用不同体系结构的 Erlang VM 安装的服务。
以服务形式运行时的转储文件位置
在 RabbitMQ 以服务形式运行时 Erlang VM 终止的情况下,它不会将崩溃转储写入当前目录(这对服务没有意义),而是写入 RabbitMQ 服务器基本目录 中的 erl_crash.dump
文件,默认情况下为 %APPDATA%\%RABBITMQ_SERVICENAME%
- 通常为 %APPDATA%\RabbitMQ
。否则。