RabbitMQ3.13.x之_RabbitMQ中数据文件和目录位置
文章目录
- RabbitMQ3.13.x之_RabbitMQ中数据文件和目录位置
- [1. 概述](#1. 概述)
- [2. 覆盖位置](#2. 覆盖位置)
-
- [1. 路径和目录名称限制](#1. 路径和目录名称限制)
- 2.所需的文件和目录权限
- [3. 环境变量](#3. 环境变量)
- [4. Linux、macOS、BSD上的默认位置](#4. Linux、macOS、BSD上的默认位置)
- [5. Windows上的默认位置](#5. Windows上的默认位置)
- [6. 通用二进制构建默认值](#6. 通用二进制构建默认值)
1. 概述
每个 RabbitMQ 节点都使用许多文件和目录 加载配置:存储数据、元数据、日志文件等。 它们的位置可以更改。
本指南涵盖:
- 如何自定义所用 RabbitMQ 节点的各种目录和文件的位置
- 各种操作系统上密钥文件和目录的默认位置
- 与文件和目录位置相关的其他主题
本指南随附主配置指南。
2. 覆盖位置
许多环境变量指定其中 RabbitMQ 应该定位某些东西。在大多数环境中,默认 值应该工作正常。
1. 路径和目录名称限制
一些环境变量配置路径和位置(节点的基目录或数据目录、插件源和扩展目录、 等等)。这些路径必须排除许多字符:
*
(在 Linux、macOS、BSD 和其他类 UNIX 系统上)?
^
和!
[
和]
{}
和}
上述字符将导致节点无法按预期启动或运行(例如加载插件代码模块和其他文件)。
2.所需的文件和目录权限
更改文件或目录位置时,请务必 确保他们有足够的权限来使用 RabbitMQ 要从中读取和写入的节点操作系统进程。最好假设 RabbitMQ 使用的大多数目录和文件都需要读取, 写入权限和文件创建权限。
Debian、RPM、Homebrew 和 Windows 安装程序包 将设置适合大多数的文件系统权限 但是,当严格的默认权限是 在系统范围内使用,可能需要运行其他 安装后的配置步骤,以确保 RabbitMQ 节点 文件和目录具有足够的权限
3. 环境变量
名字 | 描述 |
---|---|
RABBITMQ_BASE | 注意:特定于 Windows。此基目录包含 RabbitMQ 服务器数据库的子目录和 日志文件。与其凌驾于RABBITMQ_MNESIA_BASE 之上,逐一RABBITMQ_LOG_BASE, 改为覆盖基目录可能更容易。 |
RABBITMQ_CONFIG_FILE | 配置文件的路径,不带 扩展名。如果 配置 文件存在,服务器使用它来配置 RabbitMQ 组件。有关详细信息,请参阅配置指南。.config |
RABBITMQ_CONFIG_FILES | 新样式 (.conf) 格式的 RabbitMQ 配置文件目录的路径。 文件将按字母顺序加载。在每个文件前面加上一个数字 是一种常见的做法。有关详细信息,请参阅配置指南。 |
RABBITMQ_MNESIA_BASE | 此基目录包含 RabbitMQ 的子目录 服务器的节点数据库、消息存储库和集群状态文件,每个节点一个, 除非RABBITMQ_MNESIA_DIR 是明确设置的。 有效的 RabbitMQ 用户必须有足够的权限 读取、写入和创建此目录中的文件和子目录 任何时候。 此变量通常不会被覆盖。通常被覆盖。RABBITMQ_MNESIA_DIR |
RABBITMQ_MNESIA_DIR | 存储此 RabbitMQ 节点数据的目录。这包括 模式数据库、消息存储库、集群成员信息等 持久节点状态。 |
RABBITMQ_SCHEMA_DIR | RabbitMQ 保存其配置架构的目录,用于 新样式配置文件。 |
RABBITMQ_LOG_BASE | 此基目录包含 RabbitMQ 服务器的日志 文件,除非设置了RABBITMQ_LOGS。 |
RABBITMQ_LOGS | RabbitMQ 服务器的 Erlang 日志文件的路径。这 变量不能在 Windows 上被覆盖。 |
RABBITMQ_PLUGINS_DIR | 插件归档文件所在的目录列表 从。这是类似 -的变量,其中 不同的路径由特定于操作系统的分隔符分隔 (适用于 Unix,适用于 Windows)。 插件可以安装到任何 此处列出的目录。PATH``:``; |
RABBITMQ_PLUGINS_EXPAND_DIR | 用于在启动时扩展已启用插件的工作目录 服务器。是的 重要的是有效的 RabbitMQ 用户具有足够的权限 读取和创建此目录中的文件和子目录。 |
RABBITMQ_ENABLED_PLUGINS_FILE | 此文件记录显式启用的插件。当插件 启用或禁用,将重新创建此文件。是的 重要的是有效的 RabbitMQ 用户具有足够的权限 随时读取、写入和创建此文件。 |
RABBITMQ_PID_FILE | 将进程 ID 放置在其中以供 使用的文件。rabbitmqctl wait |
4. Linux、macOS、BSD上的默认位置
在下表中,指示了一些路径。Debian 和 RPM 软件包安装使用空的 .${install_prefix}``${install_prefix}
Homebrew 安装在安装时使用 installation-prefix (Homebrew Cellar)。由 默认情况下,这是在基于 Apple Silicon 的 Mac 上。/opt/homebrew
名字 | 位置 |
---|---|
RABBITMQ_BASE | (未使用 - 仅限 Windows) |
RABBITMQ_CONFIG_FILE | ${install_prefix}/etc/rabbitmq/rabbitmq |
RABBITMQ_MNESIA_BASE | ${install_prefix}/var/lib/rabbitmq/mnesia |
RABBITMQ_MNESIA_DIR | $RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME |
RABBITMQ_LOG_BASE | ${install_prefix}/var/log/rabbitmq |
RABBITMQ_LOGS | $RABBITMQ_LOG_BASE/$RABBITMQ_NODENAME.log |
RABBITMQ_PLUGINS_DIR | /usr/lib/rabbitmq/plugins:$RABBITMQ_HOME/plugins 请注意,仅当 RabbitMQ 安装到标准(默认)位置时才使用。/usr/lib/rabbitmq/plugins |
RABBITMQ_PLUGINS_EXPAND_DIR | $RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME-plugins-expand |
RABBITMQ_ENABLED_PLUGINS_FILE | ${install_prefix}/etc/rabbitmq/enabled_plugins |
RABBITMQ_PID_FILE | $RABBITMQ_MNESIA_DIR.pid |
5. Windows上的默认位置
名字 | 位置 |
---|---|
RABBITMQ_BASE | %APPDATA%\RabbitMQ |
RABBITMQ_CONFIG_FILE | %RABBITMQ_BASE%\rabbitmq |
RABBITMQ_MNESIA_BASE | %RABBITMQ_BASE%\db |
RABBITMQ_MNESIA_DIR | %RABBITMQ_MNESIA_BASE%\%RABBITMQ_NODENAME%-mnesia |
RABBITMQ_LOG_BASE | %RABBITMQ_BASE%\log |
RABBITMQ_LOGS | %RABBITMQ_LOG_BASE%\%RABBITMQ_NODENAME%.log |
RABBITMQ_PLUGINS_DIR | 安装目录 /plugins |
RABBITMQ_PLUGINS_EXPAND_DIR | %RABBITMQ_MNESIA_BASE%\%RABBITMQ_NODENAME%-plugins-expand |
RABBITMQ_ENABLED_PLUGINS_FILE | %RABBITMQ_BASE%\enabled_plugins |
RABBITMQ_PID_FILE | (目前不支持) |
6. 通用二进制构建默认值
这些是通用二进制文件构建时获得的默认值 存档无需任何修改即可解压缩。在 此表是指 到提取存档时生成的目录。$RABBITMQ_HOME
这些路径与使用相同包类型但大量使用的安装选项无关 自定义它,例如 Homebrew 公式。
名字 | 位置 |
---|---|
RABBITMQ_BASE | (未使用) |
RABBITMQ_CONFIG_FILE | $RABBITMQ_HOME/etc/rabbitmq/rabbitmq |
RABBITMQ_MNESIA_BASE | $RABBITMQ_HOME/var/lib/rabbitmq/mnesia |
RABBITMQ_MNESIA_DIR | $RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME |
RABBITMQ_LOG_BASE | $RABBITMQ_HOME/var/log/rabbitmq |
RABBITMQ_LOGS | $RABBITMQ_LOG_BASE/$RABBITMQ_NODENAME.log |
RABBITMQ_PLUGINS_DIR | $RABBITMQ_HOME/plugins |
RABBITMQ_PLUGINS_EXPAND_DIR | $RABBITMQ_MNESIA_BASE/$RABBITMQ_NODENAME-plugins-expand |