RabbitMQ系列(五) RabbitMQ的文件和目录位置
概述
每个RabbitMQ节点使用一些文件和目录,用于加载配置、存储数据 / 元数据 / 日志文件等等。这些文件和目录的位置是可以自定义的。
本指南涵盖:
1)如何自定义RabbitMQ节点所使用的各种目录和文件的位置;
2)各种不同操作系统的默认位置;
3)关于文件和目录位置的其他相关主题;
路径和目录名称限制
一些环境变量配置路径和位置(节点的基目录或数据目录、插件目录和扩展目录等等)。这些路径必须排除一些字符:
1)* 和 ?(Linux, macOS, BSD和其他类UNIX系统);
2)^ 和 !(Windows);
3)[ 和 ];
4){ 和 };
上述字符将使节点无法启动或按预期运行(例如,展开插件并加载它们的元数据)。
在更改文件或目录位置时,务必确保RabbitMQ节点对应的OS进程拥有足够的读写权限。最好假设RabbitMQ使用的大多数目录和文件都需要读、写和文件创建权限。Debian、RPM和Windows安装脚本将设置适用于大多数环境的文件系统权限。然而,当系统范围内使用严格的默认权限时,可能需要在安装后运行额外的配置步骤,以确保RabbitMQ节点文件和目录具有足够的权限。
环境变量
| 名称 | 描述 |
|---|---|
| RABBITMQ_BASE | 只针对Windows系统。这个基目录包含RabbitMQ服务器的数据库和日志文件的子目录。或者分别设置RABBITMQ_MNESIA_BASE和RABBITMQ_LOG_BASE环境变量。 |
| RABBITMQ_CONFIG_FILE | 配置文件的路径,没有.config扩展名。如果有配置文件,服务器将使用它来配置RabbitMQ组件。 |
| RABBITMQ_GENERATED_CONFIG_DIR | 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 | RabbitMQ的插件目录。这是类路径变量,不同的路径由特定于操作系统的分隔符(Unix为:,Windows为;)。 |
| RABBITMQ_PLUGINS_EXPAND_DIR | 工作目录,用于在启动服务器时展开启用的插件。重要的是,有效的RabbitMQ用户拥有足够的权限来读取和创建该目录中的文件和子目录。 |
| RABBITMQ_ENABLED_PLUGINS_FILE | 此文件显式记录启用的插件。当启用或禁用插件时,将重新创建此文件。重要的是,有效的RabbitMQ用户拥有足够的权限来随时读取、写入和创建该文件。 |
| RABBITMQ_PID_FILE | 进程id放置在其中供rabbitmqctl使用的文件。 |
Linux, macOS, BSD的默认位置
在下表中,一些路径的${install_prefix}被指定。安装时,Homebrew安装使用安装前缀(Homebrew Cellar)。默认情况下这是/usr/local。
Debian和RPM包安装使用一个空的${install_prefix}。
| 名称 | 描述 |
|---|---|
| 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 |
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% |
| RABBITMQ_LOG_BASE | %RABBITMQ_BASE%\log |
| RABBITMQ_LOGS | %RABBITMQ_LOG_BASE%%RABBITMQ_NODENAME%.log |
| RABBITMQ_PLUGINS_DIR | Installation-directory/plugins |
| RABBITMQ_PLUGINS_EXPAND_DIR | %RABBITMQ_MNESIA_BASE%%RABBITMQ_NODENAME%-plugins-expand |
| RABBITMQ_ENABLED_PLUGINS_FILE | %RABBITMQ_BASE%\enabled_plugins |
| RABBITMQ_PID_FILE | 当前不支持 |
通用二进制构建的默认位置
这些是在解包通用Unix tar文件并不加修改地运行服务器时获得的默认值。在这个表中,$RABBITMQ_HOME指的是在提取归档文件时生成的目录。
| 名称 | 描述 |
|---|---|
| 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 |
| RABBITMQ_PID_FILE | $RABBITMQ_MNESIA_DIR.pid |
上一篇:RabbitMQ系列(四) RabbitMQ的虚拟主机
下一篇:RabbitMQ系列(六) RabbitMQ的配置
链接:https://juejin.cn/post/6844904139063820295
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
RabbitMQ系列(五) RabbitMQ的文件和目录位置的更多相关文章
- RabbitMQ系列之RabbitMQ单机安装
安装epel源 rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm #ht ...
- Python学习笔记(二十五)操作文件和目录
摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...
- linux学习(五)Linux 文件与目录管理
一.Linux处理目录的常用命令 ls : 列出目录 cd :切换目录 pwd :显示目前的目录 mkdir :创建一个新的目录 rmdir :删除一个空的目录 cp : 复制文件或目录 rm : 移 ...
- 转:eclipse打开文件或者目录位置(不使用插件)
http://my.oschina.net/havoc/blog/204958?p= 首先说不使用插件的方法 WINDOWS eclipse配置 Run-->External Tools--&g ...
- FileDirLocationOperator - 文件或目录位置操作.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Move ...
- RabbitMQ系列(五)--高级特性
在上一篇文章讲解MQ消息可靠性投递和幂等性中有提到confirm机制的重要性,现在更相信的说明一下 一.Confirm机制 Confirm就是消息确认,当Producer发送消息,如果Broker收到 ...
- rabbitmq系列五 之远程过程调用(RPC)
1.远程过程调用(RPC) 在第二篇教程中我们介绍了如何使用工作队列(work queue)在多个工作者(woker)中间分发耗时的任务. 可是如果我们需要将一个函数运行在远程计算机上并且等待从那儿获 ...
- rabbitmq系列五 之主题交换机
1.主题 在前面的例子中,我们对日志系统进行了改进.使用了direct交换机代替了fanout交换机,从只能盲目的广播消息改进为有可能选择性的接收日志. 尽管直接交换机能够改善我们的日志系统,但是它也 ...
- RabbitMQ系列之RabbitMQ集群
本文的集群是RabbitMq 自身的Cluster搭建 . #hosts准备: vim /etc/hosts #172.16.3.79 s1 #172.16.3.105 s2 172.16.2.10 ...
- eclipse打开本地文件所在目录位置的快捷键
在开发的过程中总是会遇到需要在本地文件夹找到该本地文件的情况,比如说要发送给同事什么的. 在使用Eclipse的过程中,大多数人都是先在Eclipse目录中定位到文件,然后通过在文件的右键属性中找到文 ...
随机推荐
- HarmonyOS CPU与I/O密集型任务开发指导
一.CPU密集型任务开发指导 CPU密集型任务是指需要占用系统资源处理大量计算能力的任务,需要长时间运行,这段时间会阻塞线程其它事件的处理,不适宜放在主线程进行.例如图像处理.视频编码.数据分析等 ...
- 抓包整理————tcp 三次握手性能优化[十]
前言 tcp 三次握手性能优化. 正文 服务器三次握手流程示例: 下面就是3次握手的过程: 知道这个有什么用呢? 我举一个我使用到的例子哈. 比如有很多 tcp 连接到一台机器上机器上,那么tcp_m ...
- 性能透明提升 50%!SMC + ERDMA 云上超大规模高性能网络协议栈
简介: 新的协议栈是不是重新发明轮子?一个协议栈能否解决所有问题?适配所有场景? 编者按:当前内核网络协议栈有什么问题?新的协议栈是不是重新发明轮子?一个协议栈能否解决所有问题?适配所有场景?本文整理 ...
- KubeVela 1.1 发布,开启混合环境应用交付新里程碑
简介: KubeVela 作为一个开箱即用.面向现代微服务架构的应用交付与管理平台,今天正式发布了 1.1 版本,以更加用户友好和完善的功能集,开启了"让混合环境应用交付更加简单高效&qu ...
- 日志审计携手DDoS防护助力云上安全
简介: 本文主要介绍日志审计结合DDoS防护保障云上业务安全的新实践. 日志审计携手DDoS防护助力云上安全 1 背景介绍 设想一下,此时你正在高速公路上开车去上班,路上还有其他汽车,总体而言,大家 ...
- [GPT] gradio-chatbot 原理及代码解析
GradioChatBot 是一个基于 Gradio 的聊天机器人,它可以与不同的 URL 进行对话.其原理是通过将用户输入的文本发送到指定的 URL,然后接收并解析 URL 返回的响应,然后将响 ...
- [Caddy2] The Caddy Web Server 常见 Caddyfile 模式
Caddyfile 是 JSON 配置的易用写法,支持通常用的功能,完整功能还是需要 JSON 配置的. 以下适用于 Caddy2 版本的配置. 静态文件服务器 example.com root * ...
- linux环境下java调用C/C++动态库(JNI技术:参数为指针与结构体)
一.JNI技术 JNI是Java Native Interface的缩写,通过使用 Java本地接口书写程序,可以确保代码在不同的平台上方便移植. SUN公司发布的Java 本地接口(JNI)提供了将 ...
- 指定Task任务顺序执行
经常听到说线程池这个东西,凭印象写了个这么简单的例子. CusTRun方法要不要await,取决于要不要作为后台任务.任务可指定数量,线程参数可共享全,顺序可控,可继续改进. using System ...
- SpringBoot序列化、反序列化空字符串为null的三种方式
一.需求:接收前端传入的""空字符串参数,有时候我们需要把它转为null SpringBoot项目 方式:①Jackson(推荐).②切面+反射.③注解+切面+反射 后两种方式,未 ...