Rabbit MQ config文件解析

Rabbit MQ config文件解析

  1. tcp_listeners:用于监听AMQP链接的端口或主机名/对(不带TLS),默认端口:5672
  2. 2.numtcpacceptors :将接受TCP侦听器链接的Erlang进程数。 默认值:10
  3. handshake_timeout:AMQP 0-8 / 0-9 / 0-9-1握手(套接字链接和SSL握手后)的最长时间,以毫秒为单位。 默认值:10000
  4. ssl_listeners:如上所述,用于SSL链接。 默认值:[]
  5. numsslacceptors:将接受SSL侦听器链接的Erlang进程数。 默认值:1
  6. ssl_options:SSL配置。请参阅SSL文档。 默认值:[]
  7. sslhandshaketimeout:SSL握手超时,以毫秒为单位。 默认值:5000
  8. vmmemoryhigh_watermark:触发流量控制的内存阈值。请参见基于内存的流量控制文档。 默认值:0.4
  9. vmmemoryhigh_watermarkpagingratio:队列开始将消息发送到光盘以释放内存的高水位限制的分数。请参见基于内存的流量控制文档。 默认值:0.5
  10. diskfreelimit:RabbitMQ存储数据的分区的磁盘空间限制。当可用磁盘空间低于此限制时,会触发流量控制.该值能够相对于RAM的总量设置(例如{mem_relative,1.0}),该值也能够设置为整数个字节。或者,在信息单元(例如“50MB”)中。默认状况下,可用磁盘空间必须超过50MB。请参阅磁盘警报文档。默认值:50000000
  11. log_levels:控制日志记录的粒度。该值是日志事件类别和日志级别对的列表,该级别能够是“none”之一(不记录任何事件),“Error”(仅记录Error),“warning”(仅记录errors和warning),“info”(errors,warnings和informational 性消息被记录)或“debug”(errors,warnings,informational和Debug消息都会被记录)。目前有四类定义。其余,目前未分类的事件始终被记录。 类别是:node

    channel -全部与AMQP频道有关的活动.web

    connection -用于全部与网络链接相关的事件数据库

    federation -对于与federation有关的全部事件后端

    mirroring -用于全部与镜像队列相关的事件。缓存

    默认值:[{connection,info}]安全

12.framemax:与客户端协商的帧的最大容许大小(以字节为单位),设置为0表示“无限制”,但会在一些QPid客户端中触发错误.设置较大的值能够提升吞吐量;设置较小的值可能会提升延迟,默认值: 131072 13.channelmax:与客户协商的最大容许通道数,设置为0表示“无限制”。使用更多的通道会增长代理的内存占用。默认:0服务器

14.channeloperationtimeout:通道运行超时(以毫秒为单位)(内部使用,因为消息传递协议的差别和限制,不会直接暴露给客户端),默认:15000网络

15.heartbeat:表明心跳延迟的值.在几秒钟内,服务器在connection.tune帧中发送.若是设置为0,则将禁用心跳.客户可能不遵循服务器建议,有关详细信息,请参阅AMQP参考.在大量链接的状况下,禁用心跳可能会提升性能,可是可能致使在存在关闭非活动链接的网络设备的状况下链接丢失。默认值:60(版本3.5.5以前的580)dom

16.default_vhost:当RabbitMQ从头建立新数据库时,建立虚拟主机。交换机amq.rabbitmq.log将存在于此虚拟主机中。 默认值:<<“/”>>tcp

17.default_user:RabbitMQ从头建立新数据库时要建立的用户名。 默认值:<<“guest”>>

18.default_pass:默认用户的密码。 默认值:<<“guest”>>

19.defaultusertags:默认用户的标签。 默认:[administrator]

20.default_permissions:建立时分配给默认用户的权限。 默认: [<<“.”>>,<<“.”>>,<<“.*”>>]

21.loopback_users:仅容许经过环回接口(即本地主机)链接到代理的用户列表.若是您但愿容许默认访客用户远程链接,则须要将其更改成[]。 默认值:[<<“guest”>>]

22.cluster_nodes:设置此选项可使节点在第一次启动时自动发生。元组的第一个元素是节点将尝试汇集到的节点。第二个元素是disc或ram,并肯定节点类型。Default: {[], disc}

23.server_properties:关于链接的客户端通知的键值对列表。Default: []

24.collect_statistics:统计收集模式。主要与管理插件相关。 可选项是:

none (do not emit statistics events)

coarse (emit per-queue/per-channel/per-connection statistics)

fine (also emit per-message statistics)

Default: none

25.collectstatisticsinterval:统计信息收集间隔(以毫秒为单位)。主要与管理插件相关。 默认值:5000

26.managementdbcache_multiplier:影响管理插件将缓存昂贵的管理查询(如队列列表)的时间量.高速缓存会将上次查询的通过时间乘以此值,并将结果缓存一段时间。 默认值:5

27.auth_mechanisms:SASL认证机制,以提供给客户。 默认值:[ 'PLAIN', 'AMQPLAIN']

28.auth_backends:使用身份验证和受权后端列表。 其余数据库比rabbit_auth_backend_internal能够经过插件。 默认值:[rabbit_auth_backend_internal]

29.reversednslookups:设置为true以使RabbitMQ在客户端链接上执行反向DNS查找,并经过rabbitmqctl和管理插件来呈现该信息。 默认值:false

30.delegate_count:用于集群内通讯的表明进程数。在具备很是大数量的核心而且也是集群的一部分的机器上,您可能但愿增长此值。默认值:16

31.trace_vhosts:用于tracer内部使用。你不该该改变这个。 默认值:[]

32.tcplistenoptions:默认套接字选项。你可能不想改变这个。 Default: [{backlog, 128}, {nodelay, true}, {linger, {true,0}}, {exitonclose, false}]

33.hipe_compile:设置为true.为了预编译RabbitMQ部分与HiPE,一个即时编译器为Erlang。这将以增长启动时间为代价增长服务器吞吐量。您可能会在启动时花费几分钟的时间来得到20-50%的性能.这些数字高度依赖于工做负载和硬件.HiPE支持可能不会被编译到Erlang安装中。若是没有,则启用此选项将仅显示警告消息,正常状况下将启动启动。例如,Debian / Ubuntu用户须要安装erlang-base-hipe软件包. 在某些平台上,HiPE彻底不可用,特别是Windows.HiPE在17.5以前的Erlang / OTP版本中已经出现了问题。对于HiPE,强烈推荐使用最近的Erlang / OTP版本。默认值:false

34.cluster_partition_handling:如何处理网络分区。可用模式有:

ignore

pause_minority

{pause_if_all_down,[nodes],ignore | autoheal}其中[nodes]是节点名称列表 (例如:['rabbit @ node1','rabbit @ node2'])

autoheal 默认值: ignore

35.clusterkeepaliveinterval:节点应该如何频繁地向其余节点发送keepalive消息(以毫秒为单位)。请注意,这与net_ticktime不同;错过的keepalive消息不会致使节点被忽略。 默认值:10000

36.queueindexembedmsgsbelow:消息大小以字节为单位,消息将直接嵌入在队列索引中。建议您在更改以前阅读维护者调整文档。默认:Default: 4096

37.msgstoreindex_module:队列索引实现模块。建议您在更改以前阅读维护者调整文档。 默认值:rabbit_msg_store_ets_index

38.backing_queue_module:队列内容的实现模块。你可能不想改变这个。 默认值:rabbit_variable_queue

39.msg_store_file_size_limit:持久的可调整值。你几乎确定不该该改变这个。 默认值:16777216

40.mnesia_table_loading_retry_limit:在等待群集中的Mnesia表可用时重试的次数。 默认值:10

41.queue_index_max_journal_entries:持久的可调整值。你几乎确定不该该改变这个。 默认值:65536

42.queue_master_locator:队列主位置策略。可用的策略是:

<<"min-masters">>

<<"client-local">>

<<"random">>

有关详细信息,请参阅队列主位置的文档。 默认值:<<“client-local”>>

43.lazy_queue_explicit_ gc_run_operation_threshold:在内存压力下,可调整的值仅适用于惰性队列.这是触发垃圾回收器和其余内存减小活动的阈值.低价值能够下降性能,并且能够提升性能,但会致使更高的内存消耗。你几乎确定不该该改变这个。 默认值:1000

44.queue_explicit_ gc_run_operation_threshold:在内存压力下,仅适用于正常队列的可调参数值,这是触发垃圾收集器和其余内存减小活动的阈值。低价值能够下降性能,并且能够提升性能,但会致使更高的内存消耗。你几乎确定不该该改变这个。 默认值:1000

此外,许多插件能够在配置文件中具备部分,名称为rabbitmq_plugin。咱们的维护插件记录在如下位置

rabbitmq_management

rabbitmq_management_agent

rabbitmq_web_dispatch

rabbitmq_stomp

rabbitmq_shovel

rabbitmq_auth_backend_ldap

配置条目加密

能够在RabbitMQ配置文件中加密敏感配置条目(例如密码,包含URL的凭据)。代理在开始时解密加密的条目.请注意,加密配置条目不会使系统有意义地更安全。然而,它们容许RabbitMQ的部署符合各国的规定,要求在配置文件中不该以纯文本形式显示敏感数据。

加密值必须在Erlang加密元组内:{encrypted,...}。如下是默认用户加密密码的配置

[
  {rabbit, [
  {default_user, <<"guest">>},
  {default_pass,
{encrypted,
 <<"cPAymwqmMnbPXXRVqVzpxJdrS8mHEKuo2V+3vt1u/fymexD9oztQ2G/oJ4PAaSb2c5N/hRJ2aqP/X0VAfx8xOQ==">>
}
  },
  {config_entry_decoder, [
 {passphrase, <<"mypassphrase">>}
 ]}
]}
].

注意configentrydecoder密钥与RabbitMQ用于解密加密值的密码。密码短语不须要在配置文件中进行硬编码,它能够在一个单独的文件中。

[
  {rabbit, [
  ...
  {config_entry_decoder, [
 {passphrase, {file, "/path/to/passphrase/file"}}
 ]}
]}
].

当使用{passphrase,prompt}启动时,RabbitMQ也能够要求操做者输入密码

使用rabbitmqctl和encode命令加密值

rabbitmqctl encode '<<"guest">>' mypassphrase
{encrypted,<<"... long encrypted value...">>}
rabbitmqctl encode '"amqp://fred:secret@host1.domain/my_vhost"' mypassphrase
{encrypted,<<"... long encrypted value...">>}

若是要解密值,请添加--decode选项

rabbitmqctl encode --decode '{encrypted, <<"...">>}' mypassphrase
<<"guest">>
rabbitmqctl encode --decode '{encrypted, <<"...">>}' mypassphrase
"amqp://fred:secret@host1.domain/my_vhost"

能够对不一样类型的值进行编码。上面的例子编码了二进制文件(<<“guest”>>)和字符串(“amqp:// fred:secret@host1.domain/my_vhost”)。

加密机制使用PBKDF2从密码短语中产生派生密钥。默认散列函数为SHA512,默认迭代次数为1000.默认密码为AES 256 CBC

您能够在配置文件中更改这些默认值:

[
  {rabbit, [
  ...
  {config_entry_decoder, [
 {passphrase, "mypassphrase"},
 {cipher, blowfish_cfb64},
 {hash, sha256},
 {iterations, 10000}
 ]}
]}
].

在命令行:

rabbitmqctl encode --cipher blowfish_cfb64 --hash sha256 --iterations 10000 \
 '<<"guest">>' mypassphrase
相关文章
相关标签/搜索