The RabbitMQ instance defaults to the system parameters provided by RabbitMQ. You can also conveniently configure the parameters through the interface.
After upgrading RabbitMQ, if there are parameters that need to be deleted, deprecated, or changed, please refer to the RabbitMQ official website for the corresponding changes.
Updating parameters will cause the instance to restart. For the stability of your application, please update parameters during off-peak hours.
The parameters for the data nodes of the instance are specified through the spec.rabbitmq.additionalConfig
field of the RabbitMQ CR resource.
Parameter Name | Parameter Description | Value Range | Default Value |
---|---|---|---|
num_acceptors.tcp | The number of Erlang processes that will accept connections for the TCP listeners. | - | num_acceptors.tcp = 10 |
handshake_timeout | Maximum time for AMQP 0-9-1 handshake (after socket connection and TLS handshake), in milliseconds. | - | handshake_timeout = 10000 |
vm_memory_high_watermark.relative | Memory threshold at which flow control is triggered. This can be absolute or relative to the amount of RAM available to the OS. | - | vm_memory_high_watermark.relative = 0.4 |
vm_memory_calculation_strategy | Strategy for memory usage reporting | allocated rss legacy erlang | vm_memory_calculation_strategy = allocated |
vm_memory_high_watermark_paging_ratio | Fraction of the high watermark limit at which queues start to page messages out to disk to free up memory. See the memory-based flow control documentation. | - | vm_memory_high_watermark_paging_ratio = 0.5 |
total_memory_available_override_value | Allows overriding the total amount of memory available, instead of inferring it from the environment using OS-specific means. This should only be used when the actual maximum amount of RAM available to the node doesn't match the value inferred by the node, e.g., due to containerization or similar constraints unknown to the node. The value may be set to an integer number of bytes or, alternatively, in human-readable units (e.g., 8GB ). For example, when set to 4 GB, the node believes it is running on a machine with 4 GB of RAM. | - | - |
disk_free_limit.absolute | Disk free space limit of the partition on which RabbitMQ stores data. When the available disk space falls below this limit, flow control is triggered. The value can be set relative to the total amount of RAM or as an absolute value in bytes or, alternatively, in human-readable units (e.g., 50MB or 5GB ). | - | disk_free_limit.absolute = 50MB |
log.file.level | Controls the granularity of logging. The value is a list of log event category and log level pairs. | error warning info debug | log.file.level = info |
channel_max | Maximum permissible number of channels that can be negotiated with clients, excluding a special channel number 0 used in the protocol. Setting it to 0 means "unlimited," which is a dangerous value as applications may sometimes have channel leaks. Using more channels increases the memory footprint of the broker. | - | channel_max = 2047 |
channel_operation_timeout | Channel operation timeout in milliseconds (used internally, not directly exposed to clients due to messaging protocol differences and limitations). | - | channel_operation_timeout = 15000 |
max_message_size | Largest allowed message payload size in bytes. Messages larger than this size will be rejected with a suitable channel exception. | Max value: 536870912 | max_message_size = 134217728 |
heartbeat | Value representing the heartbeat timeout suggested by the server during connection parameter negotiation. If set to 0 on both ends, heartbeats are disabled (this is not recommended). See the Heartbeats guide for details. | - | heartbeat = 60 |
default_vhost | Virtual host created when RabbitMQ creates a new database from scratch. The exchange amq.rabbitmq.log will exist in this virtual host. | - | default_vhost = / |
collect_statistics | Statistics collection mode. Primarily relevant for the management plugin. | none coarse fine | collect_statistics = none |
collect_statistics_interval | Statistics collection interval in milliseconds. Primarily relevant for the management plugin. | - | collect_statistics_interval = 5000 |
management_db_cache_multiplier | Affects the amount of time the management plugin caches expensive management queries, such as queue listings. The cache will multiply the elapsed time of the last query by this value and cache the result for this duration. | - | management_db_cache_multiplier = 5 |
delegate_count | Number of delegate processes to use for intra-cluster communication. On machines with a very large number of cores and that are also part of a cluster, you may wish to increase this value. | - | delegate_count = 16 |
hipe_compile | Do not use. This option is no longer supported. HiPE support has been dropped starting with Erlang 22. | - | hipe_compile = false |
cluster_partition_handling | How to handle network partitions. | ignore autoheal pause_minority pause_if_all_down | cluster_partition_handling = ignore |
cluster_keepalive_interval | How frequently nodes should send keepalive messages to each other (in milliseconds). Note that this is not the same as net_ticktime; missed keepalive messages will not cause nodes to be considered down. | - | cluster_keepalive_interval = 10000 |
queue_index_embed_msgs_below | Size in bytes of messages below which messages will be embedded directly in the queue index. It is advisable to refer to the persister tuning documentation before modifying this. | - | queue_index_embed_msgs_below = 4096 |
mnesia_table_loading_retry_timeout | Timeout used when waiting for Mnesia tables in a cluster to become available. | - | mnesia_table_loading_retry_timeout = 30000 |
mnesia_table_loading_retry_limit | Number of retries when waiting for Mnesia tables during cluster startup. Note that this setting does not apply to Mnesia upgrades or node deletions. | - | mnesia_table_loading_retry_limit = 10 |
mirroring_sync_batch_size | Batch size used to transfer messages to an unsynchronized replica (queue mirror). See documentation on eager batch synchronization. | - | mirroring_sync_batch_size = 4096 |
queue_master_locator | Queue leader location strategy. Available strategies are | min-masters client-local random | queue_master_locator = client-local |
For more supported parameters, please refer to the RabbitMQ official website.