RabbitMQ通常有以下2种方式来定制Server:
一、环境变量 环境变量初始值通过文件rabbitmq-env.conf来配置,rabbitmq-env.conf默认在/etc/rabbitmq,
且位置不可更改。
rabbitmq-env.conf中的每项都以 RABBITMQ_为前缀,常用参数如下:
RABBITMQ_NODE_IP_ADDRESS=//IP地址,空串bind所有地址,指定地址bind指定网络接口
RABBITMQ_NODE_PORT=//TCP端口号,默认是5672
RABBITMQ_NODENAME=//节点名称。默认是rabbit
RABBITMQ_CONFIG_FILE=//配置文件路径
RABBITMQ_MNESIA_BASE=//mnesia所在路径
RABBITMQ_LOG_BASE=//日志所在路径
RABBITMQ_PLUGINS_DIR=//插件所在路径
二、配置文件
配置文件即上节rabbitmq-env.conf中通过RABBITMQ_CONFIG_FILE指定的文件加后缀.config。
rabbitmq.config文件中每个参数为一个Erlang tuple,结构为{Key,Value}, Key为atom类型, Value为一个term,其中几个关键参数为:
tcp_listerners设置rabbimq的监听端口,默认为[5672]。
disk_free_limit 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.
vm_memory_high_watermark,设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。
hipe_compile 将部分rabbimq代码用HighPerformance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。
tcp_listerners设置rabbimq的监听端口,默认为[5672]。
disk_free_limit 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.
vm_memory_high_watermark,设置内存低水位线,若低于该水位线,则开启流控机制,默认值是0.4,即内存总量的40%。
hipe_compile 将部分rabbimq代码用HighPerformance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。
force_fine_statistics,该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。
frame_max:包大小,若包小则低延迟,若包则高吞吐,默认是131072=128K。
heartbeat:客户端与服务端心跳间隔,设置为0则关闭心跳,默认是600秒。
rabbitmq-env.conf和rabbitmq.config默认是不存在的。
rabbitmq-env.conf需要在缺省位置手动创建一个。
rabbitmq.config需要在RABBITMQ_CONFIG_FILE指定位置手动创建一个。