RabbitMQ–扩展–07–配置文件


1、介绍

RabbitMQ的配置,可以通过环境变量、配置文件、运行时参数(和策略)等三种方式来定制化相应的服务。

2、RabbitMQ环境变量

RabbitMQ服务端 参数 可以通过环境变量进行设置值,例如

  1. 节点名称
  2. RabbitMQ 配置文件的地址
  3. 节点内部通信端口等。

2.1、环境变量

  1. 以"RABBITMQ_"开头
  2. 可以在Shell环境中设置
  1. 如果是在非Shell环境中配置,则需要将"RABBITMQ"这个前缀去除
  1. 可以在rabbitmq-env.conf中设置。
  2. 优先级顺序从高到低
  1. Shell环境
  2. rabbitmq-env.conf
  3. 默认的配置
  1. $RABBITMQ_HOME/sbin/rabbitrnq-defaults

2.2、服务节点名称

当采用rabbitmq-server -detached 启动RabbitMQ服务的时候,此服务节点默认以"rabbit@"加上当前的Shell环境的hostname(主机名)来命名,即rabbit@$HOSTNAME。

2.3、rabbitmq-env.conf

通过在启动RabbitMQ服务时指定 RABITMQ CONF ENV FILE 变量来设置此文件的路径

# RabbitMQ环境变量的定义文件(rabbitmq-env.conf)
#定义节点名称
NODENAME=rabbit@node1

#定义RabbitMQ 的对外通信端口号
NODE_PORT=5672

#配置文件的地址
CONFIG_FILE=/apps/conf/rabbitmq/rabbitmq

2.4、常见变量

rabbitmq python 配置 rabbitmq的配置文件放在哪_环境变量

rabbitmq python 配置 rabbitmq的配置文件放在哪_rabbitmq python 配置_02

注意,如果没有特殊的需求,不建议更改RabbitMQ 的环境变量。如果在实际生产环境中,
对于配量和日志的目录有着特殊的管理目录,那么可以参考以下相应的配置

#配置文件的地址
CONFIG_FILE=/apps/conf/rabbitmq/rabbitmq
#环境变量的配置文件的地址
CONF_ENV_FILE=/apps/conf/rabbitmq/rabbitmq-env.conf
#服务日志的地址
LOG_BASE=/apps/logs/rabbitmq
#Mnesia 的路径
MNE5IA BA5E=/apps/dbdat/rabbitmq/mnesia

3、RabbitMQ配置文件

配置文件 可以定义RabbitMQ 服务和插件设直,例如,TCP 监听端口,以及其他网络相关的设直、内存限制、磁盘限制等。

3.1、配置项说明

rabbitmq python 配置 rabbitmq的配置文件放在哪_rabbitmq_03

rabbitmq python 配置 rabbitmq的配置文件放在哪_环境变量_04

rabbitmq python 配置 rabbitmq的配置文件放在哪_配置文件_05

rabbitmq python 配置 rabbitmq的配置文件放在哪_rabbitmq python 配置_06

3.2、配置项加密

  1. 配置文件中有一些敏感的配置项可以被加密, 然后在RabbitMQ 启动时可以对这些项进行解密。
  2. 对这些项进行加密并不是意味着系统的安全性增强了,而是遵从一些必要的规范,让一些敏感的数据不会出现在文本形式的配置文件中。
  3. 在配置文件中将加密之后的值以"(encrypted ,加密的值)"形式包裹

3.3、网络

  1. 网络是客户端和RabbitMQ之间通信的媒介。
  2. RabbitMQ支持的所有协议都是基于TCP层面的。包括操作系统和RabbitMQ本身都提供了许多可调节的参数,除了操作系统内核参数和DNS,所有的RabbitMQ设置都可以通过在rabbitmq.config 配置文件中配置来实现。
  3. 优化网络配置的一个重要目标就是提高吞吐量,比如禁用Nagle 算法、增大TCP缓冲区的大小。
  1. 每个TCP连接都分配了缓冲区。一般来说,缓冲区越大,吞吐量也会越高,但是每个连接上耗费的内存也就越多,从而使总体服务的内存增大,这是一个权衡的问题。
  2. 在Linux 操作系统中,默认会自动调节TCP缓冲区的大小,通常会设置为80KB到120KB之间。
  3. 要提高吞吐量可以使用rabbit.tcp.listen.options 来加大配置。

rabbitmq python 配置 rabbitmq的配置文件放在哪_配置文件_07

rabbitmq python 配置 rabbitmq的配置文件放在哪_rabbitmq_08

rabbitmq python 配置 rabbitmq的配置文件放在哪_配置文件_09

4、RabbitMQ运行时参数(策略)

运行时参数和策略 可以在运行时定义集群层面的服务设置

RabbitMQ绝大多数的配置都可以通过修改rabbitrnq.config配置文件来完成,但是其中有些配置并不太适合在rabbitrnq.config中去实现。比如某项配置不需要同步到集群中的其他节点中,或者某项配置需要在运行时更改(rabbitrnq.config的修改需要重启Broker才能生效)。这种类型的配置在RabbitMQ中称之为运行时参数。

4.1、设置参数

  1. 可以通过 rabbitrnqctl工具 来设置
  2. 可以通过 RabbitMQ Management 插件提供的HTTPAPI接口来设置。

4.2、RabbitMQ参数类型

  1. vhost 级别的Parameter
  1. 由一个组件名称(component name)、名称(name)和值(value)组成
  1. global 级别的Parameter
  1. 由一个名称和值组成

4.2.1、vhost 级别的参数

对应的rabbitrnqctl工具相关的命令有三种
1. set pararneter
2. list parameters
3. clear parametero

用来设置一个参数
rabbitmqctl set_parameter [-p vhost] {component_name} {name} {value}


用来列出指定虚拟主机上所有的Parameter。
rabbitmqctl list_parameters [-p vhost]


用来清除指定的参数
rabbitmqctl clear_parameter [-p vhost] {componenet_name} {key}

4.2.2、global 级别的参数

global 级别Parameter的set、clear 和list功能所对应的rabbitrnqctl工具与HTTP API接口如表

rabbitmq python 配置 rabbitmq的配置文件放在哪_TCP_10