Parameter Configuration

The RabbitMQ instance defaults to the system parameters provided by RabbitMQ. You can also conveniently configure the parameters through the interface.

Tip

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.

Warning

Updating parameters will cause the instance to restart. For the stability of your application, please update parameters during off-peak hours.

Procedure

CLI
Web Console

The parameters for the data nodes of the instance are specified through the spec.rabbitmq.additionalConfig field of the RabbitMQ CR resource.

# Update the data node configuration of the s6 instance
$ kubectl -n default patch rabbitmqclusters <instance name> --type=merge --patch='{"spec": {"rabbitmq": {"additionalConfig":"channel_max=1000"}}}''

Parameter Support Description

Parameter NameParameter DescriptionValue RangeDefault Value
num_acceptors.tcpThe number of Erlang processes that will accept connections for the TCP listeners.-num_acceptors.tcp = 10
handshake_timeoutMaximum time for AMQP 0-9-1 handshake (after socket connection and TLS handshake), in milliseconds.-handshake_timeout = 10000
vm_memory_high_watermark.relativeMemory 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_strategyStrategy for memory usage reportingallocated

rss

legacy

erlang
vm_memory_calculation_strategy = allocated
vm_memory_high_watermark_paging_ratioFraction 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_valueAllows 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.absoluteDisk 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.levelControls 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_maxMaximum 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_timeoutChannel operation timeout in milliseconds (used internally, not directly exposed to clients due to messaging protocol differences and limitations).-channel_operation_timeout = 15000
max_message_sizeLargest allowed message payload size in bytes. Messages larger than this size will be rejected with a suitable channel exception.Max value: 536870912max_message_size = 134217728
heartbeatValue 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_vhostVirtual host created when RabbitMQ creates a new database from scratch. The exchange amq.rabbitmq.log will exist in this virtual host.-default_vhost = /
collect_statisticsStatistics collection mode. Primarily relevant for the management plugin.none

coarse

fine
collect_statistics = none
collect_statistics_intervalStatistics collection interval in milliseconds. Primarily relevant for the management plugin.-collect_statistics_interval = 5000
management_db_cache_multiplierAffects 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_countNumber 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_compileDo not use. This option is no longer supported. HiPE support has been dropped starting with Erlang 22.-hipe_compile = false
cluster_partition_handlingHow to handle network partitions.ignore

autoheal

pause_minority

pause_if_all_down
cluster_partition_handling = ignore
cluster_keepalive_intervalHow 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_belowSize 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_timeoutTimeout used when waiting for Mnesia tables in a cluster to become available.-mnesia_table_loading_retry_timeout = 30000
mnesia_table_loading_retry_limitNumber 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_sizeBatch size used to transfer messages to an unsynchronized replica (queue mirror). See documentation on eager batch synchronization.-mirroring_sync_batch_size = 4096
queue_master_locatorQueue leader location strategy. Available strategies aremin-masters

client-local

random
queue_master_locator = client-local

For more supported parameters, please refer to the RabbitMQ official website.