通用二进制构建(“通用 UNIX 构建”)
概述
RabbitMQ 发行版包含适用于 Linux、MacOS 和 *BSD 系统的二进制软件包。它非常简洁,并且对如何安装、配置和管理不作任何限定。在无法使用更具限定性的安装选项(Debian 或 RPM 软件包、Homebrew、BSD 端口)的环境中,建议使用此软件包。它也是在开发环境中同一台机器上运行多个版本的便捷选择。
有一个单独的 适用于 Windows 的二进制软件包。
与 Debian、RPM 和 Windows 安装程序 软件包的情况不同,使用此软件包类型进行 节点管理 仅使用 RabbitMQ CLI 工具 或通过运算符手动设置例如 systemd
服务来执行。
下载
描述 | 下载 | 签名 |
---|---|---|
通用 UNIX 二进制构建(tar.xz,来自 GitHub,推荐) | rabbitmq-server-generic-unix-4.0.2.tar.xz | 签名 |
安装
确保已安装 Erlang/OTP
此软件包需要安装 支持的 Erlang 版本 才能运行。
安装服务器
下载 rabbitmq-server-generic-unix-4.0.2.tar.xz
存档并解压缩。
tarball 中包含一个名为 rabbitmq_4.0.2
的目录。此目录是节点基本目录。它应该移动到系统上的合适应用程序目录,例如 /usr/local
。该目录中的 sbin
目录包含服务器和 CLI 工具 脚本。它是包含在 PATH
中的理想选择。
操作
运行和管理节点
与其他一些安装方法(即 Debian 和 RPM 软件包)不同,RabbitMQ 通用 UNIX 二进制构建不需要 sudo
。它可以解压缩到任何位置,并使用 sbin
下的脚本和 CLI 工具 启动和管理。默认 数据目录位置 将位于 ./var
下,即安装目录中。
启动服务器
要启动服务器,请运行 sbin/rabbitmq-server
脚本。这将显示一条简短的横幅消息,最后以“已完成,带 [n] 个插件”消息结尾,指示 RabbitMQ 代理已成功启动。要以“分离”模式启动服务器,请使用 rabbitmq-server -detached
。这将在后台运行节点进程。
停止服务器
要停止正在运行的节点,请使用 sbin/rabbitmqctl shutdown
。该命令将等待节点进程停止。如果目标节点未运行,它将退出并显示错误。
配置服务器
RabbitMQ 配置文件 位于 $RABBITMQ_HOME/etc/rabbitmq/rabbitmq.conf
是配置节点的主要方式。
可以 使用环境变量 来控制某些设置。建议使用 $RABBITMQ_HOME/etc/rabbitmq/rabbitmq-env.conf
文件来执行此操作。
安装后这两个文件都不存在,因此必须先创建它们。
请参阅 RabbitMQ 配置指南 以了解更多信息。
文件位置
通用二进制构建旨在无需授予其基本目录之外的目录的权限即可运行。默认情况下使用的 目录和文件 全部位于安装目录 rabbitmq_4.0.2
下,该目录位于脚本中的 $RABBITMQ_HOME 变量中。
可以 指示 节点为 配置、节点数据目录、日志 文件、插件 等使用更常规的系统目录。为了使节点使用操作系统默认值,请找到以下行
PREFIX=${RABBITMQ_HOME}
在 sbin/rabbitmq-defaults
脚本中,并将此行更改为
SYS_PREFIX=
但不要修改此脚本中的任何其他行。
重要提示:此修改后,默认目录位置可能指向不存在的目录或有效节点用户没有权限的目录。
特别是可能需要创建 RABBITMQ_MNESIA_BASE
和 RABBITMQ_LOG_BASE
(服务器将在启动时尝试创建它们),并且 已启用插件文件(RABBITMQ_ENABLED_PLUGINS_FILE
)需要可由 rabbitmq-plugins 写入。
将在 /etc/rabbitmq/
中查找配置文件。
端口访问
RabbitMQ 节点绑定到端口(打开服务器 TCP 套接字)以接受客户端和 CLI 工具连接。其他进程和工具(例如 SELinux)可能会阻止 RabbitMQ 绑定到端口。发生这种情况时,节点将无法启动。有关更多详细信息,请参阅 网络指南。
默认用户访问
代理创建一个名为 guest
的用户,其密码为 guest
。未配置的客户端通常会使用这些凭据。默认情况下,仅在作为 localhost 连接到代理时才能使用这些凭据,因此在从任何其他计算机连接之前,您需要采取措施。
请参阅有关 访问控制 的文档,了解如何创建更多用户和删除 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)提供系统限制调整方面的帮助。我们的 开发工具 指南列出了相关的模块和项目。