RabbitMQ 实例默认使用 RabbitMQ 提供的系统参数。您也可以通过界面方便地配置参数。
升级 RabbitMQ 后,如果有需要删除、弃用或更改的参数,请参考 RabbitMQ 官方网站 获取相应的更改信息。
更新参数会导致实例重启。为了应用程序的稳定性,请在非高峰时段更新参数。
实例的数据节点参数通过 RabbitMQ CR 资源的 spec.rabbitmq.additionalConfig
字段进行指定。
参数名称 | 参数描述 | 值范围 | 默认值 |
---|---|---|---|
num_acceptors.tcp | 接受 TCP 监听器连接的 Erlang 进程数量。 | - | num_acceptors.tcp = 10 |
handshake_timeout | AMQP 0-9-1 握手的最大时间(在套接字连接和 TLS 握手之后),单位为毫秒。 | - | handshake_timeout = 10000 |
vm_memory_high_watermark.relative | 流控制被触发的内存阈值。可以是绝对值或相对于操作系统可用内存的比例。 | - | vm_memory_high_watermark.relative = 0.4 |
vm_memory_calculation_strategy | 内存使用情况报告的策略 | allocated rss legacy erlang | vm_memory_calculation_strategy = allocated |
vm_memory_high_watermark_paging_ratio | 开始将消息分页到磁盘以释放内存的高水位限制的百分比。请参见 基于内存的流控制 文档。 | - | vm_memory_high_watermark_paging_ratio = 0.5 |
total_memory_available_override_value | 允许覆盖可用的总内存量,而不是通过操作系统特定的方法推断这个值。这应仅在节点可用的实际最大内存量与节点推断的值不匹配时使用,例如,由于容器化或节点未知的类似约束。该值可以设置为字节的整数,也可以以可读单位(例如 8GB )设置。例如,当设置为 4 GB 时,节点认为它在一台具有 4 GB RAM 的机器上运行。 | - | - |
disk_free_limit.absolute | RabbitMQ 存储数据的分区的磁盘可用空间限制。当可用磁盘空间低于此限制时,将触发流控制。该值可以相对于总内存量设置,或作为字节的绝对值,也可以以可读单位(例如 50MB 或 5GB )设置。 | - | disk_free_limit.absolute = 50MB |
log.file.level | 控制日志记录的粒度。该值是日志事件类别和日志级别对的列表。 | error warning info debug | log.file.level = info |
channel_max | 与客户端协商的最大可允许通道数,不包括协议中使用的特殊通道号 0。将其设置为 0 意味着“无限”。这是一个危险的值,因为应用程序有时可能会出现通道泄漏。使用更多通道会增加代理的内存占用。 | - | channel_max = 2047 |
channel_operation_timeout | 通道操作超时,以毫秒为单位(内部使用,由于消息协议的差异和限制,未直接暴露给客户端)。 | - | channel_operation_timeout = 15000 |
max_message_size | 允许的最大消息负载大小(以字节为单位)。大于此大小的消息将被拒绝,并提供适当的通道异常。 | 最大值: 536870912 | max_message_size = 134217728 |
heartbeat | 表示服务器在连接参数协商期间建议的心跳超时的值。如果在两端都设置为 0,则禁用心跳(这不推荐)。有关详细信息,请参见 心跳指南。 | - | heartbeat = 60 |
default_vhost | RabbitMQ 从头创建新数据库时创建的虚拟主机。amq.rabbitmq.log 将存在于此虚拟主机中。 | - | default_vhost = / |
collect_statistics | 统计收集模式。主要与管理插件相关。 | none coarse fine | collect_statistics = none |
collect_statistics_interval | 统计收集间隔,以毫秒为单位。主要与 管理插件 相关。 | - | collect_statistics_interval = 5000 |
management_db_cache_multiplier | 影响 管理插件 缓存昂贵管理查询(例如队列列表)的时间量。缓存将最后查询经过的时间乘以此值,并在此持续时间内缓存结果。 | - | management_db_cache_multiplier = 5 |
delegate_count | 用于集群内部通信的代表进程数。在具有非常大量内核并且也属于集群的机器上,您可能希望增加此值。 | - | delegate_count = 16 |
hipe_compile | 不要使用。此选项不再受支持。自 Erlang 22 开始已删除 HiPE 支持。 | - | hipe_compile = false |
cluster_partition_handling | 处理网络分区的方式。 | ignore autoheal pause_minority pause_if_all_down | cluster_partition_handling = ignore |
cluster_keepalive_interval | 节点之间发送保持活动消息的频率(以毫秒为单位)。请注意,这与 net_ticktime 不同;丢失的保持活动消息不会导致节点被视为离线。 | - | cluster_keepalive_interval = 10000 |
queue_index_embed_msgs_below | 低于该大小的消息(以字节为单位)将被直接嵌入队列索引中。建议在修改此项之前参考 持久化调整 文档。 | - | 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 |
有关更多支持的参数,请参阅 RabbitMQ 官方网站。