前言
前面介绍了erlang环境的安装和rabbitmq环境安装,接下来对rabbitmq详细配置;
设置配置文件
- rabbitmq的系统配置文件一般是rabbitmq.conf,可以登录后台查看它的路径,如果你是源码安装,最初这个文件是没有的,需要手动创建;如果是apt安装他的位置在/etc/rabbitmq/目录下,它规定了rabbitmq的众多参数设定;
- # 进入指定目录
- touch /usr/local/rabbitmq_server/etc/rabbitmq/rabbitmq.conf
配置文件的语法继承于erlang语言,有点类似json
- [
- %% this is rabbitmq
- {rabbit, [
- {vm_memory_high_watermark_paging_ratio, 0.4},
- {vm_memory_high_watermark, 0.4}
- ]
- }
- ].
说明
注释采用%%;
注意最后结尾一定要加上.,表示结束,否则启动会报错,rabbitmq启动的时候会自动读取这个文件;
在新的3.7版本以上配置文件开始使用sysctl格式,上述配置文件的sysctl格式如下:
- # this is rabbitmq,这是注释
- vm_memory_high_watermark_paging_ratio = 0.4
- vm_memory_high_watermark = 0.4
对于更新的rabbitmq版本来说配置文件采用兼容格式,所以可以配置多种格式都能识别;
常用的配置参数
- tcp_listerners : 设置rabbimq的监听端口,默认为[5672]。
-
- disk_free_limit : 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.
-
- vm_memory_high_watermark : 设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。
-
- vm_memory_high_watermark_paging_ratio : 设置内存低水位线消息开始持久化到磁盘,默认50%
-
- force_fine_statistics : 该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。
-
- frame_max : 与客户端协商的允许最大包大小,若包太大会拆分成多次发送,默认是131072=128K。
-
- heartbeat : 客户端与服务端心跳间隔,设置为0则关闭心跳,默认是60秒。
-
- log_level : 控制日志的粒度,'none' (不记录日志事件), 'error' (只记录错误), 'warning' (只记录错误和警告), 'info' (记录错误,警告和信息), or 'debug' (记录错误,警告,信息以及调试信息).
-
- channel_max:与客户端协商的允许最大chanel大小. 设置为0表示无限制.该数值越大,则broker使用的内存就越高,Default: 0
-
- cluster_nodes:当节点第一次启动的时候,设置此选项会导致集群动作自动发生. 元组的第一个元素是其它节点想与其建立集群的节点. 第二个元素是节点的类型,要么是disc,要么是ram,Default: {[], disc}
-
- collect_statistics_interval:统计收集时间间隔(毫秒为单位),主要针对于 management plugin.Default: 5000
一个常用的配置文件
- # 3.7版本以前的格式
- [
- %% this is rabbitmq setting
- {rabbit, [
- {vm_memory_high_watermark_paging_ratio, 0.5},
- {vm_memory_high_watermark, 0.4},
- {tcp_listeners, [5672]},
- {log_levels, [{connection, error}, {channel, error}]},
- {heartbeat, 60},
- {frame_max, 131072},
- {channel_max, 500},
- {disk_free_limit, 50000000},
- ]
- }
- ].
-
- # 3.7版本sysctl格式
-
- # this is rabbitmq setting
- listeners.tcp.local = 127.0.0.1:5672
- heartbeat = 60
- frame_max = 131072
- channel_max = 128
- vm_memory_high_watermark.relative = 0.4
- vm_memory_high_watermark_paging_ratio = 0.5
- disk_free_limit.absolute = 50000
- log.console = false
- log.console.level = info
- log.exchange = false
- log.exchange.level = info