Appearance
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.default | 5672 | AMQP 监听端口 |
| 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_watermark | 0.4 | 内存高水位线(占比) |
| vm_memory_high_watermark_paging_ratio | 0.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_limit | 50MB | 磁盘最小可用空间 |
| disk_free_limit.relative | - | 相对磁盘限制 |
ini
# 磁盘限制配置
disk_free_limit.absolute = 10GB
disk_free_limit.relative = 2.0队列配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
| queue_master_locator | client-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_user | guest | 默认用户名 |
| default_pass | guest | 默认密码 |
| 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.host | Kubernetes 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 = hostnameErlang Cookie
| 配置项 | 说明 |
|---|---|
| -setcookie | Erlang 集群认证 cookie |
bash
# 设置 Erlang Cookie
export RABBITMQ_ERLANG_COOKIE='unique-secret-cookie'管理插件配置
HTTP API 配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
| management.tcp.port | 15672 | 管理 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_mode | basic | 速率统计模式 |
ini
# 管理配置
management.http_log_dir = /var/log/rabbitmq/management
management.rates_mode = detailed插件配置
MQTT 插件
| 配置项 | 默认值 | 说明 |
|---|---|---|
| mqtt.listeners.tcp.default | 1883 | MQTT 端口 |
| mqtt.default_user | guest | 默认用户 |
| mqtt.default_pass | guest | 默认密码 |
ini
# MQTT 配置
mqtt.listeners.tcp.default = 1883
mqtt.default_user = mqtt_user
mqtt.default_pass = mqtt_password
mqtt.allow_anonymous = falseSTOMP 插件
| 配置项 | 默认值 | 说明 |
|---|---|---|
| stomp.listeners.tcp.default | 61613 | STOMP 端口 |
ini
# STOMP 配置
stomp.listeners.tcp.default = 61613
stomp.default_user = stomp_user
stomp.default_pass = stomp_passwordPrometheus 插件
| 配置项 | 默认值 | 说明 |
|---|---|---|
| prometheus.tcp.port | 15692 | Prometheus 端口 |
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 = falseOAuth2 配置
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.level | info | 控制台日志级别 |
| log.file.level | info | 文件日志级别 |
| 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_PORT | AMQP 端口 |
| RABBITMQ_NODENAME | 节点名称 |
| RABBITMQ_CONFIG_FILE | 配置文件路径 |
| RABBITMQ_MNESIA_BASE | 数据目录 |
| RABBITMQ_LOG_BASE | 日志目录 |
| RABBITMQ_ERLANG_COOKIE | Erlang 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注意事项
- 配置优先级: 环境变量 > 配置文件 > 默认值
- 重启生效: 大部分配置需要重启服务生效
- 语法检查: 修改后检查配置语法是否正确
- 备份配置: 修改前备份原配置文件
