通用二进制构建(“通用 UNIX 构建”)
概述
RabbitMQ 发布版包含适用于 Linux、MacOS 和 *BSD 系统的二进制包。它非常精简,在安装、配置和管理方面没有特定偏好。在无法使用更具特定性的安装选项(如 Debian 或 RPM 包、Homebrew、BSD ports)的环境中,推荐使用此包。它也是在开发环境中在同一台机器上运行多个版本的便捷选项。
有一个单独的 Windows 二进制包。
与 Debian、RPM 和 Windows 安装程序 包不同,使用此包类型进行 节点管理 只能通过 RabbitMQ CLI 工具 或由操作员手动设置 systemd 服务等方式进行。
下载
| 描述 | 下载 | 签名 |
|---|---|---|
| 通用 UNIX 二进制构建 (tar.xz,来自 GitHub,推荐) | rabbitmq-server-generic-unix-4.2.0.tar.xz | 签名 |
安装
确保已安装 Erlang/OTP
此包需要安装 受支持的 Erlang 版本 才能运行。
安装服务器
下载 rabbitmq-server-generic-unix-4.2.0.tar.xz 存档并解压。
tar 包中包含一个名为 rabbitmq_4.2.0 的目录。此目录是节点的基础目录。应将其移动到系统上的合适应用程序目录,例如 /usr/local。该目录下的 sbin 目录包含服务器和 CLI 工具 脚本。将其添加到 PATH 是一个不错的选择。
运维
运行和管理节点
与 Debian 和 RPM 包 等其他安装方法不同,RabbitMQ 通用 UNIX 二进制构建不需要 sudo。可以将其解压到任何位置,并使用 sbin 下的脚本和 CLI 工具 进行启动和管理。默认的 数据目录位置 将位于 ./var 下,即安装目录中。
启动服务器
要启动服务器,请运行 sbin/rabbitmq-server 脚本。这将显示一个简短的横幅消息,最后是“completed with [n] plugins.”(完成,[n] 个插件。)消息,表明 RabbitMQ 代理已成功启动。要以“分离”模式启动服务器,请使用 rabbitmq-server -detached。这将使节点进程在后台运行。
停止服务器
要停止正在运行的节点,请使用 sbin/rabbitmqctl shutdown。该命令将等待节点进程停止。如果目标节点未运行,它将以错误退出。
配置服务器
位于 $RABBITMQ_HOME/etc/rabbitmq/rabbitmq.conf 的 RabbitMQ 配置文件是配置节点的主要方式。
可以使用 环境变量 来控制某些设置。推荐的方式是使用 $RABBITMQ_HOME/etc/rabbitmq/rabbitmq-env.conf 文件。
安装后,这些文件都不存在,因此必须先创建它们。
请参阅 RabbitMQ 配置指南了解更多信息。
文件位置
通用二进制构建旨在无需授予其基础目录以外的目录权限即可运行。默认使用的 目录和文件 都位于安装目录 rabbitmq_4.2.0 下,该目录在脚本中由 $RABBITMQ_HOME 变量指定。
可以 指示 节点使用更常规的系统目录来存放 配置、节点数据目录、日志 文件、插件 等。为了使节点使用操作系统默认设置,请在 sbin/rabbitmq-defaults 脚本中找到以下行
PREFIX=${RABBITMQ_HOME}
并将此行更改为
SYS_PREFIX=
但不要修改此脚本中的任何其他行。
重要提示:进行此修改后,默认目录位置可能指向不存在的目录,或者有效的节点用户可能没有权限访问这些目录。
特别是 RABBITMQ_MNESIA_BASE 和 RABBITMQ_LOG_BASE 可能需要创建(服务器将在启动时尝试创建它们),并且 已启用插件文件(RABBITMQ_ENABLED_PLUGINS_FILE)需要可供 rabbitmq-plugins 写入。
配置文件将在 /etc/rabbitmq/ 中查找。
端口访问
RabbitMQ 节点绑定到端口(打开服务器 TCP 套接字)以接受客户端和 CLI 工具的连接。SELinux 等其他进程和工具可能会阻止 RabbitMQ 绑定到端口。发生这种情况时,节点将无法启动。有关更多详细信息,请参阅网络指南。
默认用户访问
代理创建一个用户 guest,密码为 guest。未配置的客户端通常会使用这些凭据。**默认情况下,这些凭据只能在连接到本地主机上的代理时使用**,因此在从任何其他计算机连接之前,您需要采取相应措施。
有关如何创建更多用户和删除 guest 用户的信息,请参阅访问控制文档。
管理节点
要停止服务器或检查其状态等,您可以调用 sbin/rabbitmqctl(以运行 rabbitmq-server 的用户身份)。如果没有正在运行的代理,所有 rabbitmqctl 命令都会报告节点不存在。
- 调用
rabbitmqctl stop或rabbitmqctl shutdown来停止服务器 - 调用
rabbitmq-diagnostics status来检查它是否正在运行
请参阅 CLI 工具指南了解更多信息。
控制 Linux 上的系统限制
运行生产工作负载的 RabbitMQ 安装可能需要调整系统限制和内核参数,才能处理大量并发连接和队列。需要调整的主要设置是打开文件的最大数量,也称为 ulimit -n。许多操作系统上的默认值对于消息代理来说太低了(在几个 Linux 发行版上为 1024)。我们建议在生产环境中为用户 rabbitmq 允许至少 65536 个文件描述符。对于许多开发工作负载,4096 应该足够了。
有两个限制在起作用:操作系统内核允许的最大打开文件数(Linux 上为 fs.file-max,OS X 和 FreeBSD 上为 kern.maxfilesperproc)和每个用户的限制(ulimit -n)。前者必须大于后者。有关控制系统范围限制的更多信息,请参阅关于打开文件限制调优的绝佳 Riak 指南。
验证限制
RabbitMQ 管理 UI 在“概览”选项卡上显示了可供其使用的文件描述符数量。
rabbitmq-diagnostics status
包含相同的值。以下命令
ulimit -a
可用于显示当前用户的有效限制。对于正在运行的进程,可能存在更方便的操作系统特定方法,例如 Linux 上的 /proc 文件系统。
配置管理工具
配置管理工具(例如 Chef、Puppet、BOSH)有助于系统限制的调优。我们的 开发者工具 指南列出了相关的模块和项目。