RabbitMQ 生产环境配置详解

一 rabbitmq 生产部署

RabbitMQ 常用的三种自定义服务器的通用方法:

配置文件 rabbitmq.conf

环境变量文件 rabbitmq-env.conf

补充配置文件 advanced.config

rabbitmq.conf和rabbitmq-env.conf的位置

在二进制安装中路径是在 :安装目录下的/etc/rabbitmq/

rpm 安装: /etc/rabbitmq/

如果rabbitmq.conf和rabbitmq-env.conf 的两个文件不存在,那么我们可以创建该文件,然后我们可以通过环境变量
指定该文件的位置。

补充 :

rabbitmqctl rabbitmqctl 是管理虚拟主机和用户权限的工具

rabbitmq-plugins 是管理插件的工具

1.1 rabbitmq.conf

在rabbitmq 3.7.0 之前,rabbitmq.conf 使用了Erlang语法配置格式,新的版本使用了sysctl 格式.

sysctl 语法:

单个信息都在一行里面

配置信息以key value 的形式保存。

‘#’开头表示注释。

配置示例文件:rabbitmq.conf.example

配置属性和描述()

属性描述默认值
listeners   要监听 AMQP 0-9-1 and AMQP 1.0 的端口   listeners.tcp.default = 5672  
num_acceptors.tcp   接受tcp连接的erlang 进程数   num_acceptors.tcp = 10  
handshake_timeout   AMQP 0-9-1 超时时间,也就是最大的连接时间,单位毫秒   handshake_timeout = 10000  
listeners.ssl   启用TLS的协议   默认值为none  
num_acceptors.ssl   接受基于TLS协议的连接的erlang 进程数   num_acceptors.ssl = 10  
ssl_options   TLS 配置   ssl_options =none  
ssl_handshake_timeout   TLS 连接超时时间 单位为毫秒   ssl_handshake_timeout = 5000  
vm_memory_high_watermark   触发流量控制的内存阈值,可以为相对值(0.5),或者绝对值 vm_memory_high_watermark.relative = 0.6 ,vm_memory_high_watermark.absolute = 2GB   默认vm_memory_high_watermark.relative = 0.4  
vm_memory_calculation_strategy   内存使用报告策略,assigned:使用Erlang内存分配器统计信息 rss:使用操作系统RSS内存报告。这使用特定于操作系统的方法,并可能启动短期子进程。legacy:使用遗留内存报告(运行时认为将使用多少内存)。这种策略相当不准确。erlang 与legacy一样 是为了向后兼容   vm_memory_calculation_strategy = allocated  
vm_memory_high_watermark_paging_ratio   当内存的使用达到了50%后,队列开始将消息分页到磁盘   vm_memory_high_watermark_paging_ratio = 0.5  
total_memory_available_override_value   该参数用于指定系统的可用内存总量,一般不使用,适用于在容器等一些获取内存实际值不精确的环境   默认未设置  
disk_free_limit   Rabbitmq存储数据的可用空间限制,当低于该值的时候,将触发流量限制,设置可参考vm_memory_high_watermark参数   disk_free_limit.absolute = 50MB  
log.file.level   控制记录日志的等级,有info,error,warning,debug   log.file.level = info  
channel_max   最大通道数,但不包含协议中使用的特殊通道号0,设置为0表示无限制,不建议使用该值,容易出现channel泄漏   channel_max = 2047  
channel_operation_timeout   通道操作超时,单位为毫秒   channel_operation_timeout = 15000  
heartbeat   表示连接参数协商期间服务器建议的心跳超时的值。如果两端都设置为0,则禁用心跳,不建议禁用   heartbeat = 60  
default_vhost   rabbitmq安装后启动创建的虚拟主机   default_vhost = /  
default_user   默认创建的用户名   default_user = guest  
default_pass   默认用户的密码   default_pass = guest  
default_user_tags   默认用户的标签   default_user_tags.administrator = true  
default_permissions   在创建默认用户是分配给默认用户的权限   default_permissions.configure = .* default_permissions.read = .* default_permissions.write = .*  
loopback_users   允许通过回环地址连接到rabbitmq的用户列表,如果要允许guest用户远程连接(不安全)请将该值设置为none,如果要将一个用户设置为仅localhost连接的话,配置loopback_users.username =true(username要替换成用户名)   loopback_users.guest = true(默认为只能本地连接)  
cluster_formation.classic_config.nodes   设置集群节点cluster_formation.classic_config.nodes.1 = rabbit@hostname1  
cluster_formation.classic_config.nodes.2 = rabbit@hostname2   默认为空,未设置  
collect_statistics   统计收集模式,none 不发出统计信息事件,coarse每个队列连接都发送统计一次,fine每发一条消息的统计数据   collect_statistics = none  
collect_statistics_interval   统计信息收集间隔,以毫秒为单位   collect_statistics_interval = 5000  
delegate_count   用于集群内通信的委托进程数。在多核的服务器上我们可以增加此值   delegate_count = 16  
tcp_listen_options   默认的套接字选项   tcp_listen_options.backlog = 128 .....  
hipe_compile   设置为true以使用HiPE预编译RabbitMQ的部分,HiPE是Erlang的即时编译器,启用HiPE可以提高吞吐量两位数,但启动时会延迟几分钟。Erlang运行时必须包含HiPE支持。如果不是,启用此选项将不起作用。HiPE在某些平台上根本不可用,尤其是Windows。   hipe_compile = false  
cluster_keepalive_interval   节点应该多长时间向其他节点发送keepalive消息(以毫秒为单位),keepalive的消息丢失不会被视为关闭   cluster_keepalive_interval = 10000  
queue_index_embed_msgs_below   消息的字节大小,低于该大小,消息将直接嵌入队列索引中 bytes   queue_index_embed_msgs_below = 4096  
mnesia_table_loading_retry_timeout   等待集群中Mnesia表可用的超时时间,单位毫秒   mnesia_table_loading_retry_timeout = 30000  
mnesia_table_loading_retry_limit   集群启动时等待Mnesia表的重试次数,不适用于Mnesia升级或节点删除。   mnesia_table_loading_retry_limit = 10  
mirroring_sync_batch_size   要在队列镜像之间同步的消息的批处理大小   mirroring_sync_batch_size = 4096  
queue_master_locator   队列主节点的策略,有三大策略 min-masters,client-local,random   queue_master_locator = client-local  
proxy_protocol   如果设置为true ,则连接需要通过反向代理连接,不能直连接   proxy_protocol = false  
management.listener.port   rabbitmq web管理界面使用的端口   management.listener.port = 15672  

查看rabbitmq的有效配置

rabbitmqctl environment 1.2 advanced.config

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/68e78a9f81c38d65758946ad871040b5.html