| 变量名称 | 默认值 | 描述 |
| RABBITMQ_NODE_IP_ADDRESS | 默认为空字符串, 即绑定所有网络接口 | 如果想绑定到一个固定的IP可以使用此变量. 如果要绑定到两个或两个以上只能通过rabbitmq.config中的tcp_listeners来设置。 |
| RABBITMQ_NODE_PORT | 5672 | 供客户端建立连接端口 |
| RABBITMQ_DIST_PORT | RABBITMQ_NODE_PORT + 20000 | 用于节点和CLI工具连接的端口, 如果rabbitmq.config中配置了kernel.inet_dist_listen_min 或 kernel.inet_dist_listen_max该参数将被忽略 |
| RABBITMQ_NODENAME | - Unix*: rabbit@$HOSTNAME
- Windows: rabbit@%COMPUTERNAME%2 ^, D2 v( c% e' x1 T3 d# d: {& d
| 节点名字, 必须唯一 |
| RABBITMQ_CONF_ENV_FILE | - Generic UNIX - $RABBITMQ_HOME/etc/rabbitmq/
- Debian - /etc/rabbitmq/
- RPM - /etc/rabbitmq/
- Mac OS X (Homebrew) - ${install_prefix}/etc/rabbitmq/, the Homebrew prefix is usually /usr/local
- Windows - %APPDATA%\RabbitMQ\/ a, s* U9 [& Y
| rabbitmq-env.conf/rabbitmq-env-conf.bat 默认位置, 不同系统不同安装方式位置也不同, 如果默认位置没找到则需在该位置手动创建一个 |
| RABBITMQ_CONFIG_FILE | 同上 | rabbitmq.config 默认位置。 如果默认位置没找到则需在该位置手动创建一个 |
| RABBITMQ_USE_LONGNAME | 官网没说。。。。应该是false。。。 | 取值: true 或 false。 如果配置为true, 这将导致RabbitMQ使用完全限定的名称来标识节点 |
| RABBITMQ_SERVICENAME | Windows Service: RabbitMQ | 服务名称 |
| RABBITMQ_CONSOLE_LOG | 只在控制台输出日志, 日志不会持久化到文件 | 取值: new 或 reuse。 两种取值都是将控制台输出从服务器重定向到名为%rabbitmqservicename%(上面那个变量)的文件。 1)默认: 不设置, 控制台的日志不会被持久化到文件 2)new: 每次启动时都会创建一个新的文件 3)reuse: 每次启动服务器都会重用该日志文件 |
| RABBITMQ_CTL_ERL_ARGS | None | 在调用rabbitmqctl时使用的erl命令的参数。应该仅用于调试目的。 |
| RABBITMQ_SERVER_ERL_ARGS | - Unix*:"+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true}]"
- Windows: None
( i$ h F. f8 Q3 o
| 在调用RabbitMQ服务器时使用的erl命令的标准参数, 应该仅用于调试目的 |
| RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS | - Unix*: None
- Windows: None6 J* s5 ~6 @) I/ n" L/ X/ S
| 在调用RabbitMQ服务器时使用的erl命令的附加参数。这个变量的值被附加到参数的默认列表(RABBITMQ_SERVER_ERL_ARGS). |
| RABBITMQ_SERVER_START_ARGS | None | 在调用RabbitMQ服务器时使用的erl命令的额外参数。这不会覆盖RABBITMQ_SERVER_ERL_ARGS. |
| HOSTNAME | - Unix, Linux: `env hostname`
- MacOSX: `env hostname -s`
! X. _* K6 J4 b3 r& k4 e
| 当前机器名称 |
| COMPUTERNAME | Windows: localhost | 当前机器名称, windows使用该变量 |
| ERLANG_SERVICE_MANAGER_PATH | Windows Service: %ERLANG_HOME%\erts-x.x.x\bin | erlsrv.exe的路径, erlsrv.exe这个是erlang服务的包装脚本 |
| key | 描述 |
| tcp_listeners | 监听AMQP连接的端口或主机/对。
8 D. u1 E6 n6 P9 J2 i! W( V5 qDefault: [5672] |
| num_tcp_acceptors | Erlang进程的数量,接受TCP监听器的连接数。/ b4 y y9 C! \8 t" k Q4 _3 z
Default: 10 |
| handshake_timeout | 对AMQP 0-8/0-9/0-9-1握手的最大时间(在套接字连接和SSL握手之后),以毫秒为间隔! v/ b. d/ |& K" p! ~+ a$ {
Default: 10000 |
| ssl_listeners | 如上所述,用于SSL连接。
6 h& e1 j- V n& X2 A$ i) [2 jDefault: [] |
| num_ssl_acceptors | 用于接受SSL监听连接的Erlang进程的数量。
$ D1 j1 d1 F% g+ DDefault: 1 |
| ssl_options | SSL配置参数. 详情请看 SSL documentation. Default: [] |
| ssl_handshake_timeout | SSL握手超时,以毫秒为间隔。
+ A, x& @% d Y+ dDefault: 5000 |
| vm_memory_high_watermark | 触发流控制的内存阈值。详情请看 memory-based flow control. Default: 0.4 |
| vm_memory_high_watermark_paging_ratio | 设置当内存使用超过总内存百分比多少时,队列开始将消息持久化到磁盘以释放内存。 详情请看 memory-based flow control. Default: 0.5 |
| disk_free_limit | RabbitMQ存储数据的分区的磁盘空间限制。当可用的磁盘空间低于这个限制时,就会触发流控制。值可以相对于RAM的总数设置(例如,内存比例,1.0)。该值也可以设置为整数的字节数。或者,单位(例如“50 mb”)。默认情况下,空闲磁盘空间必须超过50MB。详情请看 Disk Alarms. Default: 50000000 |
| log_levels | 控制日志的粒度。该值是一个日志事件类别和日志级别对的列表。
, p$ e6 s" j. X5 V: [1 o: h& Y可设置级别: 'none' 'error' 'warning' 'info' 'debug' 以上下一层级别的日志输出均包含上层级别日志输出(如: warning包含warning和error), none为不输出日志
6 k% _( t* X9 [7 u! W$ }% F5 A& {0 a另外,当前未分类的事件总是记录在日志中 The categories are: - channel - 所有与AMQP通道有关的事件
- connection - 对于所有与网络连接有关的事件
- federation - 对于所有与federation有关的事件
- mirroring - 对于与镜像队列相关的所有事件 J1 X$ E9 y0 A9 W8 y& B
4 o$ ^6 A' K p' z* D0 e
Default: [{connection, info}] |
| frame_max | 框架最大允许大小(以字节为单位)与消费者进行数据交换。设置为0意味着“无限”,但会在一些QPid客户端触发一个bug。 设置更大的值可能会提高吞吐量; 设置较小的值可能会提高延迟。 Default: 131072 |
| channel_max | 与消费者进行谈判的最大允许数量。设置为0意味着“无限”。 使用更多的通道会增加代理的内存占用。 Default: 0 |
| channel_operation_timeout | 通道操作超时为毫秒(内部使用,由于消息传递协议的差异和限制而不直接暴露于客户机)。
( Z9 M- m+ X7 F0 w. {Default: 15000 |
| heartbeat | 该值表示服务器在连接中发送的心跳延迟,在几秒钟内。优化框架。如果设置为0,则会禁用心跳。客户端可能不会遵循服务器的建议,请参阅AMQP参考以了解更多细节。 在有大量连接的情况下,禁用心跳可能改善性能,但可能会导致连接在关闭非活动连接的网络设备的出现。 Default: 60 (580 prior to release 3.5.5) |
| default_vhost | 当RabbitMQ创建一个新的数据库时,创建一个虚拟主机。交换amq.rabbitmq.logwill存在于这个虚拟主机中。 Default: <<"/">> |
| default_user | 当RabbitMQ从头创建一个新数据库时,要创建用户名。
9 P0 \; v0 ^# k* s6 r; }1 QDefault: <<"guest">> |
| default_pass | 默认用户的密码。
8 q- P4 P/ H& [) k: X8 J' y! QDefault: <<"guest">> |
| default_user_tags | 默认用户的标记。
" u2 V: S4 K$ p+ ^# |" U/ k3 RDefault: [administrator] |
| default_permissions | 在创建时分配给默认用户的权限。9 O" X7 J' t5 L# `3 m/ b) ?5 u
Default: [<<".*">>, <<".*">>, <<".*">>] |
| loopback_users | 只允许通过环回接口连接到代理的用户列表(即localhost)。 如果您希望允许缺省的来宾用户远程连接,则需要将其更改为 []. Default: [<<"guest">>] |
| cluster_nodes | 当一个节点开始第一次启动时,将它设置为使集群自动发生。元组的第一个元素是节点试图集群到的节点。第二个元素是磁盘或ram,并确定节点类型。
2 [, Z8 g7 u, d" t/ o G; ~3 nDefault: {[], disc} |
| server_properties | 键值对的列表,在连接上向客户端宣布。- W1 d$ o/ ^. ?% Q) N
Default: [] |
| collect_statistics | 统计数据收集模式。主要与管理插件有关。选项有:
4 ]$ B* ]! i/ O! d4 P" a% T* L F- none (不要发布统计数据)
- coarse (发出每个队列/每个通道/每个连接统计信息)
- fine (发出的每条数据) P: t' G f7 F, P. R5 v) t/ d: |
' x% y. c) `2 i) k% s/ b
通常情况下不需要设置该参数1 R' `1 r6 @6 Z5 p( b
Default: none |
| collect_statistics_interval | 统计数据收集间隔以毫秒为间隔。 主要相关插件 management plugin. Default: 5000 |
| management_db_cache_multiplier | 管理插件将缓存诸如队列清单之类的代价较高的查询的时间。缓存将把最后一个查询的运行时间乘以这个值,并在此时间内缓存结果。' h' v/ |) G2 T# V. {
Default: 5 |
| auth_mechanisms | SASL authentication mechanisms to offer to clients. Default: ['PLAIN', 'AMQPLAIN'] |
| auth_backends | Other databases than rabbit_auth_backend_internalare available through plugins. Default: [rabbit_auth_backend_internal] |
| reverse_dns_lookups | 设置为true,让RabbitMQ对客户端连接执行反向DNS查找,并通过rabbitmqctl和管理插件呈现该信息。# P: R6 g Z5 u n, e
Default: false |
| delegate_count | 用于集群内部通信的委托进程的数量。当为多核CPU时可以考虑设置该值$ p8 X0 ~; e, z" ]! [5 c
Default: 16 |
| trace_vhosts | Used internally by the tracer. 通常情况下不需要设置该参数 Default: [] |
| tcp_listen_options | 默认的套接字选项。通常情况下不需要设置该参数
: L+ M' s+ Y/ Z8 E; M d: lDefault: [{backlog, 128}, {nodelay, true}, {linger, {true,0}}, {exit_on_close, false}] , U, v* @6 x# s( c( U# N+ u; A) h% Y
|
| hipe_compile | 设置为true,使用HiPE预编译RabbitMQ的部分,这是Erlang的即时编译器。这将增加服务器的吞吐量,以增加启动时间的成本。% O& Y0 M! l+ n) b) {. a
您可能会看到,在启动时延迟几分钟,您的性能会提高20-50%。这些数据是高度工作负载和硬件依赖的。 HiPE支持可能不会编译到您的Erlang安装中。如果不是这样,启用这个选项只会导致一个警告消息被显示,而启动将照常进行。例如,Debian/Ubuntu用户需要安装erlangbase-base-hipe包。 HiPE在某些平台上是不可用的,尤其是Windows。 HiPE在17.5之前就已经知道了erlangp/otp版本的问题。HiPE推荐使用最新的erlangp/otp版本 Default: false |
| cluster_partition_handling | 如何处理网络分区。可用模式:
5 J; c$ ~5 q; A% u- ignore
- pause_minority
- {pause_if_all_down, [nodes], ignore | autoheal}# P& c4 M$ d$ q: D1 f+ P# r
(例: ['rabbit@node1', 'rabbit@node2']) - autoheal: u, U5 F) g" g
+ B# I: ~! \; U8 i
详情请看documentation on partitions- |) J' h( w5 J" {. L! }+ z
Default: ignore |
| cluster_keepalive_interval | 节点应该多频繁地将keepalive消息发送到其他节点(以毫秒为单位)。请注意,这与netticktime不一样; 错过的keepalive消息不会导致节点被认为挂机。, s+ q$ ~* u/ `8 ]2 {( e9 \
Default: 10000 |
| queue_index_embed_msgs_below | 在消息的字节数中,消息将被直接嵌入到队列索引中。详情请看 persister tuning5 i" g' C# s4 w; l0 S
Default: 4096 |
| msg_store_index_module | 用于队列索引的实现模块。 详情请看 persister tuning
$ W/ P3 ~/ ` h2 d4 `$ {Default: rabbit_msg_store_ets_index |
| backing_queue_module | 队列内容的实现模块。通常情况下不需要设置该参数
' @. R4 F7 n0 R. z( Q8 SDefault: rabbit_variable_queue |
| msg_store_file_size_limit | Tunable value for the persister. 通常情况下不需要设置该参数 Default: 16777216 |
| mnesia_table_loading_retry_limit | 在等待集群中的Mnesia tables可用时,需要重试的次数。
; S: k: |* O; p1 c! v4 S; vDefault: 10 |
| mnesia_table_loading_retry_timeout | 在集群中等待每个重试的时间,以便可用1 d% w6 q! |3 K* l( q
Default: 30000 |
| queue_index_max_ journal_entries | Tunable value for the persister. 通常情况下不需要设置该参数 Default: 65536 |
| queue_master_locator | Queue master定位策略 可用策略: - <<"min-masters">>
- <<"client-local">>
- <<"random">>
- j% `; [& u" R4 Z7 ~1 @8 ~6 Y6 Q h* A
详情请看 documentation on queue master location
' a% Y$ E6 _2 Y7 |6 |. m4 JDefault: <<"client-local">> |
| lazy_queue_explicit_gc_run_operation_threshold | 调优: 只有在内存压力下有延迟队列时。 这是触发垃圾收集器和其他内存减少活动的阈值。一个低的值可以降低性能,一个高的值可以提高性能,但是会导致更高的内存消耗。通常情况下不需要设置该参数 Default: 1000 |
| queue_explicit_gc_run_operation_threshold | 调优: 在内存压力较大时。 这是触发垃圾收集器和其他内存减少活动的阈值。一个低的值可以降低性能,一个高的值可以提高性能,但是会导致更高的内存消耗。通常情况下不需要设置该参数 Default: 1000 |