Skip to content

RabbitMQ 完整配置项说明

概述

本文档详细说明 RabbitMQ 的所有配置项,包括配置文件格式、核心配置参数和环境变量。

配置文件位置

系统默认路径
Linux/etc/rabbitmq/rabbitmq.conf
Windows%APPDATA%\RabbitMQ\rabbitmq.conf
macOS (Homebrew)/usr/local/etc/rabbitmq/rabbitmq.conf
Docker/etc/rabbitmq/rabbitmq.conf

配置文件格式

新格式 (rabbitmq.conf)

ini
# 采用 key = value 格式
listeners.tcp.default = 5672
management.tcp.port = 15672

旧格式 (advanced.config)

erlang
%% 采用 Erlang 术语格式
[
  {rabbit, [
    {tcp_listeners, [5672]}
  ]}
].

核心配置项

网络配置

配置项默认值说明
listeners.tcp.default5672AMQP 监听端口
listeners.tcp.n-额外 TCP 监听器
listeners.ssl.default-SSL 监听端口
listeners.ssl.n-额外 SSL 监听器
ini
# TCP 监听配置
listeners.tcp.default = 5672
listeners.tcp.1 = 5673
listeners.tcp.1.ip = 127.0.0.1

# SSL 监听配置
listeners.ssl.default = 5671
ssl_options.cacertfile = /path/to/ca_certificate.pem
ssl_options.certfile = /path/to/server_certificate.pem
ssl_options.keyfile = /path/to/server_key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true

内存配置

配置项默认值说明
vm_memory_high_watermark0.4内存高水位线(占比)
vm_memory_high_watermark_paging_ratio0.75触发分页的内存比例
total_memory_available_override_value-可用内存覆盖值
ini
# 内存限制配置
vm_memory_high_watermark.relative = 0.6
vm_memory_high_watermark.absolute = 4GB
vm_memory_high_watermark_paging_ratio = 0.75
total_memory_available_override_value = 8GB

磁盘配置

配置项默认值说明
disk_free_limit50MB磁盘最小可用空间
disk_free_limit.relative-相对磁盘限制
ini
# 磁盘限制配置
disk_free_limit.absolute = 10GB
disk_free_limit.relative = 2.0

队列配置

配置项默认值说明
queue_master_locatorclient-local队列主节点定位策略
queue.default_max_length-队列默认最大长度
queue.default_max_length_bytes-队列默认最大字节数
ini
# 队列配置
queue_master_locator = min-masters
queue.default_max_length = 100000
queue.default_max_length_bytes = 1073741824

消息配置

配置项默认值说明
default_userguest默认用户名
default_passguest默认密码
default_vhost/默认虚拟主机
default_permissions.* .* .*默认权限
ini
# 默认用户配置
default_user = admin
default_pass = secure_password
default_vhost = /
default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write = .*

集群配置

节点配置

配置项说明
cluster_formation.peer_discovery_backend节点发现后端
cluster_formation.classic_config.nodes静态节点列表
cluster_formation.k8s.hostKubernetes API 地址
ini
# 静态集群配置
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@node1.example.com
cluster_formation.classic_config.nodes.2 = rabbit@node2.example.com
cluster_formation.classic_config.nodes.3 = rabbit@node3.example.com

# Kubernetes 集群配置
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
cluster_formation.k8s.host = kubernetes.default.svc.cluster.local
cluster_formation.k8s.address_type = hostname
配置项说明
-setcookieErlang 集群认证 cookie
bash
# 设置 Erlang Cookie
export RABBITMQ_ERLANG_COOKIE='unique-secret-cookie'

管理插件配置

HTTP API 配置

配置项默认值说明
management.tcp.port15672管理 API 端口
management.tcp.ip-绑定 IP
management.ssl.port-SSL 端口
ini
# 管理界面配置
management.tcp.port = 15672
management.tcp.ip = 0.0.0.0
management.ssl.port = 15671
management.ssl.cacertfile = /path/to/ca.pem
management.ssl.certfile = /path/to/cert.pem
management.ssl.keyfile = /path/to/key.pem

请求限制

配置项默认值说明
management.http_log_dir-HTTP 日志目录
management.rates_modebasic速率统计模式
ini
# 管理配置
management.http_log_dir = /var/log/rabbitmq/management
management.rates_mode = detailed

插件配置

MQTT 插件

配置项默认值说明
mqtt.listeners.tcp.default1883MQTT 端口
mqtt.default_userguest默认用户
mqtt.default_passguest默认密码
ini
# MQTT 配置
mqtt.listeners.tcp.default = 1883
mqtt.default_user = mqtt_user
mqtt.default_pass = mqtt_password
mqtt.allow_anonymous = false

STOMP 插件

配置项默认值说明
stomp.listeners.tcp.default61613STOMP 端口
ini
# STOMP 配置
stomp.listeners.tcp.default = 61613
stomp.default_user = stomp_user
stomp.default_pass = stomp_password

Prometheus 插件

配置项默认值说明
prometheus.tcp.port15692Prometheus 端口
ini
# Prometheus 配置
prometheus.tcp.port = 15692
prometheus.tcp.ip = 0.0.0.0

认证配置

LDAP 配置

ini
# LDAP 认证配置
auth_backends.1 = ldap
auth_ldap.servers.1 = ldap.example.com
auth_ldap.port = 389
auth_ldap.user_dn_pattern = cn=${username},ou=users,dc=example,dc=com
auth_ldap.use_ssl = false

OAuth2 配置

ini
# OAuth2 认证配置
auth_oauth2.resource_server_id = rabbitmq
auth_oauth2.issuer = https://auth.example.com
auth_oauth2.jwks_url = https://auth.example.com/.well-known/jwks.json

日志配置

配置项默认值说明
log.console.levelinfo控制台日志级别
log.file.levelinfo文件日志级别
log.file-日志文件路径
ini
# 日志配置
log.console.level = debug
log.file.level = info
log.file = /var/log/rabbitmq/rabbit.log
log.file.rotation.date = $D0
log.file.rotation.count = 10

环境变量

核心环境变量

变量名说明
RABBITMQ_NODE_PORTAMQP 端口
RABBITMQ_NODENAME节点名称
RABBITMQ_CONFIG_FILE配置文件路径
RABBITMQ_MNESIA_BASE数据目录
RABBITMQ_LOG_BASE日志目录
RABBITMQ_ERLANG_COOKIEErlang Cookie

使用示例

bash
# 设置环境变量
export RABBITMQ_NODE_PORT=5672
export RABBITMQ_NODENAME=rabbit@localhost
export RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq
export RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq/mnesia
export RABBITMQ_LOG_BASE=/var/log/rabbitmq
export RABBITMQ_ERLANG_COOKIE='secret-cookie'

使用示例

完整配置示例

ini
# rabbitmq.conf 完整示例

# 网络
listeners.tcp.default = 5672
listeners.ssl.default = 5671

# SSL
ssl_options.cacertfile = /etc/rabbitmq/ssl/ca.pem
ssl_options.certfile = /etc/rabbitmq/ssl/cert.pem
ssl_options.keyfile = /etc/rabbitmq/ssl/key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true

# 内存
vm_memory_high_watermark.relative = 0.6

# 磁盘
disk_free_limit.absolute = 10GB

# 集群
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@node1
cluster_formation.classic_config.nodes.2 = rabbit@node2

# 管理
management.tcp.port = 15672

# 日志
log.console.level = info
log.file = /var/log/rabbitmq/rabbit.log

注意事项

  1. 配置优先级: 环境变量 > 配置文件 > 默认值
  2. 重启生效: 大部分配置需要重启服务生效
  3. 语法检查: 修改后检查配置语法是否正确
  4. 备份配置: 修改前备份原配置文件

相关链接