概述

每个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的配置

作者:攀登者007
链接:https://juejin.cn/post/6844904139063820295
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

RabbitMQ系列(五) RabbitMQ的文件和目录位置的更多相关文章

  1. RabbitMQ系列之RabbitMQ单机安装

    安装epel源 rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm #ht ...

  2. Python学习笔记(二十五)操作文件和目录

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...

  3. linux学习(五)Linux 文件与目录管理

    一.Linux处理目录的常用命令 ls : 列出目录 cd :切换目录 pwd :显示目前的目录 mkdir :创建一个新的目录 rmdir :删除一个空的目录 cp : 复制文件或目录 rm : 移 ...

  4. 转:eclipse打开文件或者目录位置(不使用插件)

    http://my.oschina.net/havoc/blog/204958?p= 首先说不使用插件的方法 WINDOWS eclipse配置 Run-->External Tools--&g ...

  5. FileDirLocationOperator - 文件或目录位置操作.

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Move ...

  6. RabbitMQ系列(五)--高级特性

    在上一篇文章讲解MQ消息可靠性投递和幂等性中有提到confirm机制的重要性,现在更相信的说明一下 一.Confirm机制 Confirm就是消息确认,当Producer发送消息,如果Broker收到 ...

  7. rabbitmq系列五 之远程过程调用(RPC)

    1.远程过程调用(RPC) 在第二篇教程中我们介绍了如何使用工作队列(work queue)在多个工作者(woker)中间分发耗时的任务. 可是如果我们需要将一个函数运行在远程计算机上并且等待从那儿获 ...

  8. rabbitmq系列五 之主题交换机

    1.主题 在前面的例子中,我们对日志系统进行了改进.使用了direct交换机代替了fanout交换机,从只能盲目的广播消息改进为有可能选择性的接收日志. 尽管直接交换机能够改善我们的日志系统,但是它也 ...

  9. RabbitMQ系列之RabbitMQ集群

    本文的集群是RabbitMq 自身的Cluster搭建 . #hosts准备: vim /etc/hosts #172.16.3.79 s1 #172.16.3.105 s2 172.16.2.10 ...

  10. eclipse打开本地文件所在目录位置的快捷键

    在开发的过程中总是会遇到需要在本地文件夹找到该本地文件的情况,比如说要发送给同事什么的. 在使用Eclipse的过程中,大多数人都是先在Eclipse目录中定位到文件,然后通过在文件的右键属性中找到文 ...

随机推荐

  1. 【开发者说】XstoryMaker快速书写剧本场景动画

    原文:https://mp.weixin.qq.com/s/63V0dfD2IufbX92JeD-G_A,点击链接查看更多技术内容. [开发者说]栏目是为HarmonyOS开发者提供的展示和分享平台, ...

  2. HH的项链—树状数组

    题目描述 HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义. HH不断地收集新的贝壳,因此他的项链变得越来越长.有一天 ...

  3. MMDeploy部署实战系列【第一章】:Docker,Nvidia-docker安装

    MMDeploy部署实战系列[第一章]:Docker,Nvidia-docker安装 这个系列是一个随笔,是我走过的一些路,有些地方可能不太完善.如果有那个地方没看懂,评论区问就可以,我给补充. 版权 ...

  4. 07cj031,07CJ03-1图集免费下载

    简介 07CJ03-1轻钢龙骨石膏板隔墙.吊顶图集是中国建筑标准设计研究院组织编写的一部针对轻钢龙骨.石膏板材料用于非承重隔墙.室内吊顶装修的装修.建造参考资料,为用户提供专业的建造参考 下载 有需要 ...

  5. 力扣423(java)-从英文中重建数字(中等)

    题目: 给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9).按 升序 返回原始的数字. 示例 1: 输入:s = "owoztneoer"输出:&quo ...

  6. 力扣190(java)-颠倒二进制位(简单)

    题目: 颠倒给定的 32 位无符号整数的二进制位. 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型.在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论 ...

  7. 阿里 Seata 新版本终于解决了 TCC 模式的幂等、悬挂和空回滚问题

    简介: 今天来聊一聊阿里巴巴 Seata 新版本(1.5.1)是怎么解决 TCC 模式下的幂等.悬挂和空回滚问题的. 作者:朱晋君   大家好,我是君哥. 今天来聊一聊阿里巴巴 Seata 新版本(1 ...

  8. E百科 | 第2期 扒一扒能加速互联网的QUIC协议

    简介: 众所周知,QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP.TLS.HTTP/2等协议的可靠性与安 ...

  9. 分布式系统一致性测试框架Jepsen在女娲的实践应用

    ​简介: 女娲团队在过去大半年时间里持续投入女娲2.0研发,将一致性引擎和业务状态机解耦,一致性引擎可支持Paxos.Raft.EPaxos等多种一致性协议,根据业务需求支撑不同的业务状态机.其中的一 ...

  10. [Go] VsCode 的 Golang 环境设置与代码跳转支持

      终端执行: go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct WIndows下自定义指定 GOPATH 路径 ...