RabbitMQ 配置详解
RabbitMQ 配置详解
文章目录
- RabbitMQ 配置详解
-
- 一、核心配置文件 (rabbitmq.conf)
-
- 1. 网络与监听配置
- 2. 节点与集群配置
- 3. 内存与磁盘配置
- 二、高级配置 (advanced.config)
-
- 1. 队列与消息配置
- 2. 集群与镜像队列
- 三、环境变量配置
-
- 1. 基础环境变量
- 2. 性能相关变量
- 四、插件配置
-
- 1. 管理插件
- 2. MQTT插件
- 3. STOMP插件
- 五、TLS/SSL配置
-
- 1. 基础SSL配置
- 2. 高级SSL配置
- 六、生产环境建议配置
- 七、配置文件加载顺序
RabbitMQ 是一个开源的消息代理和队列服务器,以下是其核心配置项的详细说明。
一、核心配置文件 (rabbitmq.conf)
1. 网络与监听配置
-
listeners.tcp.default: 默认TCP监听端口listeners.tcp.default = 5672 -
listeners.ssl.default: SSL监听端口listeners.ssl.default = 5671 -
management.tcp.port: 管理插件HTTP端口management.tcp.port = 15672 -
management.ssl.port: 管理插件HTTPS端口management.ssl.port = 15671
2. 节点与集群配置
-
cluster_name: 集群名称cluster_name = production_cluster -
cluster_formation.classic_config.nodes: 集群节点列表cluster_formation.classic_config.nodes.1 = rabbit@node1 cluster_formation.classic_config.nodes.2 = rabbit@node2 -
loopback_users: 限制本地访问用户loopback_users.guest = false # 允许guest用户远程访问
3. 内存与磁盘配置
-
vm_memory_high_watermark: 内存使用阈值vm_memory_high_watermark.absolute = 2GB # 或相对值 vm_memory_high_watermark.relative = 0.6 # 60%的可用内存 -
disk_free_limit: 磁盘空间阈值disk_free_limit.absolute = 2GB # 或相对值 disk_free_limit.relative = 1.5 # 1.5倍内存大小
二、高级配置 (advanced.config)
1. 队列与消息配置
[
{rabbit, [
{default_permissions, [<<".*">>, <<".*">>, <<".*">>]},
{default_user, <<"guest">>},
{default_pass, <<"guest">>},
{default_vhost, <<"/">>},
{default_user_tags, [administrator]},
%% 队列配置
{queue_index_embed_msgs_below, 4096}, % 小于此值的消息直接嵌入索引
{queue_index_max_journal_entries, 32768}, % 日志条目最大值
%% 消息持久化
{mirroring_sync_batch_size, 4096},
{msg_store_io_batch_size, 4096}
]}
].
2. 集群与镜像队列
[
{rabbit, [
{cluster_partition_handling, autoheal}, % 分区处理策略
{mirroring_optimize_params, [{max_length, 100000}]}
]},
{rabbitmq_management, [
{load_definitions, "/etc/rabbitmq/definitions.json"} % 预加载定义
]}
].
三、环境变量配置
1. 基础环境变量
# 节点名称
RABBITMQ_NODENAME=rabbit@node1
# 配置文件路径
RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf
# 高级配置路径
RABBITMQ_ADVANCED_CONFIG_FILE=/etc/rabbitmq/advanced.config
# 插件目录
RABBITMQ_ENABLED_PLUGINS_FILE=/etc/rabbitmq/enabled_plugins
2. 性能相关变量
# Erlang进程限制
RABBITMQ_SERVER_ERL_ARGS="+P 1048576" # 最大进程数
# 文件描述符限制
ulimit -n 65536 # 建议值
四、插件配置
1. 管理插件
# 管理界面配置
management.tcp.ip = 0.0.0.0
management.tcp.port = 15672
management.http_log_dir = /var/log/rabbitmq/access.log
2. MQTT插件
# MQTT配置
mqtt.default_user = mqttuser
mqtt.default_pass = mqttpass
mqtt.allow_anonymous = false
mqtt.listener.tcp = 1883
3. STOMP插件
# STOMP配置
stomp.listeners.tcp.1 = 61613
stomp.default_user = stompuser
stomp.default_pass = stomppass
五、TLS/SSL配置
1. 基础SSL配置
# 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
2. 高级SSL配置
ssl_options.versions.1 = tlsv1.2
ssl_options.ciphers.1 = ECDHE-ECDSA-AES256-GCM-SHA384
ssl_options.ciphers.2 = ECDHE-RSA-AES256-GCM-SHA384
ssl_options.honor_cipher_order = true
ssl_options.honor_ecc_order = true
六、生产环境建议配置
-
资源规划:
- 每个节点至少4GB内存
- 磁盘空间至少是内存的2倍
- 文件描述符限制设置为65536或更高
-
高可用配置:
# 镜像队列配置 ha-mode = exactly ha-params = 2 # 2个副本 ha-sync-mode = automatic -
监控建议:
-
启用Prometheus插件
-
配置告警阈值:
disk_free_limit.absolute = 5GB vm_memory_high_watermark.relative = 0.7
-
-
性能优化:
# 网络调优 tcp_listen_options.backlog = 4096 tcp_listen_options.nodelay = true # 消息存储优化 msg_store_io_batch_size = 4096 queue_index_embed_msgs_below = 4096 -
安全建议:
# 禁用默认guest账户或限制其访问 loopback_users.guest = false # 启用SSL listeners.ssl.default = 5671 ssl_options.verify = verify_peer
七、配置文件加载顺序
-
/etc/rabbitmq/rabbitmq.conf(主配置文件) -
/etc/rabbitmq/advanced.config(高级Erlang配置) - 环境变量配置
-
/etc/rabbitmq/conf.d/目录下的附加配置 - 插件特定配置
配置修改后需要重启RabbitMQ服务才能生效。建议在修改配置前备份原有配置,并在测试环境验证后再应用到生产环境。
© 版权声明
文章版权归作者所有,未经允许请勿转载。