Skip to main content
Version: 4.0.0-incubating

System Properties

Before adjusting system properties in BifroMQ, it's necessary to have a thorough understanding of its internal mechanisms, as inappropriate modifications can lead to unexpected behavior. Additionally, these system properties are closely linked with BifroMQ's internal implementation and may not be compatible across different versions. System properties can be set via JVM startup parameters, allowing for flexible customization of BifroMQ's behavior. For example, setting -Dmqtt_utf8_sanity_check=false disables the check for MQTT protocol-defined UTF8 string formats.

Below is a table listing the system properties supported by the current version:

Property KeyDefault ValueDescription
client_redirect_check_interval_seconds600The client redirection check interval in seconds.
cluster_domain_resolve_timeout_seconds120LTimeout for resolving the cluster domain to discover seed nodes.
control_plane_burst_latency_ms5000LThe max latency in milliseconds tolerated for the control plane burst.
data_plane_burst_latency_ms5000LThe max latency in milliseconds tolerated for the data plane burst.
dist_server_dist_worker_call_queuesCPU coresNumber of dist worker call queues.
dist_worker_inline_fanout_threshold1000The threshold of the fanout to be executed in the calling thread.
dist_worker_fanout_parallelismMax(2, CPU cores / 8)Parallelism level for fanout operations.
dist_worker_cache_fanout_check_seconds5Interval seconds for checking cached routes against fanout related settings.
dist_worker_match_parallelismMax(2, CPU cores / 2)Parallelism level for match operations.
dist_worker_max_cached_subs_per_tenant200_000LMaximum cached subscriptions per tenant.
dist_worker_topic_match_expiry_seconds60Expiry time in seconds for topic matches.
inbox_check_queues_per_range1Number of check queues per range.
inbox_deliverers100Number of inbox deliverers.
inbox_fetch_queues_per_rangeMax(1, CPU cores / 4)Number of fetch queues per range.
inbox_meta_cache_expiry_second300Timeout in seconds before cached inbox metadata expires.
ingress_slowdown_direct_memory_usage0.8Threshold for slowing down ingress traffic based on direct memory usage.
ingress_slowdown_heap_memory_usage0.9Threshold for slowing down ingress traffic based on heap memory usage.
mqtt_utf8_sanity_checkfalseEnables/disables UTF8 sanity checks according to MQTT-1.5.3.
max_mqtt3_client_id_length65535Maximum client ID length for MQTT 3 clients.
max_mqtt5_client_id_length65535Maximum client ID length for MQTT 5 clients.
max_slowdown_timeout_seconds5Maximum duration (in seconds) that the slowdown mechanism is allowed to operate before further backpressure protection measures are taken.
mqtt_deliverers_per_serverCPU coresNumber of MQTT deliverers per server.
persistent_session_detach_timeout_second7200The timeout seconds to consider persistent session is probably detached from mqtt client.
session_register_num10Number of concurrent session registers.
maxActiveDedupChannels1024Maximum active deduplication channels per session.
maxActiveDedupTopicsPerChannel10Maximum active deduplication topics per channel.