# Configuration Options

oslo.messaging uses oslo.config to define and manage configuration options to allow the deployer to control how an application uses the underlying messaging system.

## DEFAULT

executor_thread_pool_size
  Type:

    integer

  Default:

    `64`

  Size of executor thread pool when executor is threading or eventlet.

  Deprecated Variations
  Group | Name
  --- | ---
  DEFAULT | rpc_thread_pool_size

rpc_response_timeout
  Type:

    integer

  Default:

    `60`

  Seconds to wait for a response from a call.

transport_url
  Type:

    string

  Default:

    `rabbit://`

  The network address and optional user credentials for connecting to the messaging backend, in URL format. The expected format is:

  driver://[user:pass@]host:port[,[userN:passN@]hostN:portN]/virtual_host?query

  Example: rabbit://rabbitmq:password@127.0.0.1:5672//

  For full details on the fields in the URL see the documentation of oslo_messaging.TransportURL at https://docs.openstack.org/oslo.messaging/latest/reference/transport.html

control_exchange
  Type:

    string

  Default:

    `openstack`

  The default exchange under which topics are scoped. May be overridden by an exchange name specified in the transport_url option.

rpc_ping_enabled
  Type:

    boolean

  Default:

    `False`

  Add an endpoint to answer to ping calls. Endpoint is named oslo_rpc_server_ping

## oslo_messaging_kafka

kafka_max_fetch_bytes
  Type:

    integer

  Default:

    `1048576`

  Max fetch bytes of Kafka consumer

kafka_consumer_timeout
  Type:

    floating point

  Default:

    `1.0`

  Default timeout(s) for Kafka consumers

consumer_group
  Type:

    string

  Default:

    `oslo_messaging_consumer`

  Group id for Kafka consumer. Consumers in one group will coordinate message consumption

producer_batch_timeout
  Type:

    floating point

  Default:

    `0.0`

  Upper bound on the delay for KafkaProducer batching in seconds

producer_batch_size
  Type:

    integer

  Default:

    `16384`

  Size of batch for the producer async send

compression_codec
  Type:

    string

  Default:

    `none`

  Valid Values:

    none, gzip, snappy, lz4, zstd

  The compression codec for all data generated by the producer. If not set, compression will not be used. Note that the allowed values of this depend on the kafka version

enable_auto_commit
  Type:

    boolean

  Default:

    `False`

  Enable asynchronous consumer commits

max_poll_records
  Type:

    integer

  Default:

    `500`

  The maximum number of records returned in a poll call

security_protocol
  Type:

    string

  Default:

    `PLAINTEXT`

  Valid Values:

    PLAINTEXT, SASL_PLAINTEXT, SSL, SASL_SSL

  Protocol used to communicate with brokers

sasl_mechanism
  Type:

    string

  Default:

    `PLAIN`

  Mechanism when security protocol is SASL

ssl_cafile
  Type:

    string

  Default:

    `''`

  CA certificate PEM file used to verify the server certificate

ssl_client_cert_file
  Type:

    string

  Default:

    `''`

  Client certificate PEM file used for authentication.

ssl_client_key_file
  Type:

    string

  Default:

    `''`

  Client key PEM file used for authentication.

ssl_client_key_password
  Type:

    string

  Default:

    `''`

  Client key password file used for authentication.

## oslo_messaging_notifications

driver
  Type:

    multi-valued

  Default:

    `''`

  The Drivers(s) to handle sending notifications. Possible values are messaging, messagingv2, routing, log, test, noop

transport_url
  Type:

    string

  Default:

    `<None>`

  A URL representing the messaging driver to use for notifications. If not set, we fall back to the same configuration used for RPC.

topics
  Type:

    list

  Default:

    `['notifications']`

  AMQP topic used for OpenStack notifications.

retry
  Type:

    integer

  Default:

    `-1`

  The maximum number of attempts to re-send a notification message which failed to be delivered due to a recoverable error. 0 - No retry, -1 - indefinite

## oslo_messaging_rabbit

amqp_durable_queues
  Type:

    boolean

  Default:

    `False`

  Use durable queues in AMQP. If rabbit_quorum_queue is enabled, queues will be durable and this value will be ignored.

amqp_auto_delete
  Type:

    boolean

  Default:

    `False`

  Auto-delete queues in AMQP.

rpc_conn_pool_size
  Type:

    integer

  Default:

    `30`

  Minimum Value:

    1

  Size of RPC connection pool.

conn_pool_min_size
  Type:

    integer

  Default:

    `2`

  The pool size limit for connections expiration policy

conn_pool_ttl
  Type:

    integer

  Default:

    `1200`

  The time-to-live in sec of idle connections in the pool

ssl
  Type:

    boolean

  Default:

    `False`

  Connect over SSL.

ssl_version
  Type:

    string

  Default:

    `''`

  SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some distributions.

ssl_key_file
  Type:

    string

  Default:

    `''`

  SSL key file (valid only if SSL enabled).

ssl_cert_file
  Type:

    string

  Default:

    `''`

  SSL cert file (valid only if SSL enabled).

ssl_ca_file
  Type:

    string

  Default:

    `''`

  SSL certification authority file (valid only if SSL enabled).

ssl_enforce_fips_mode
  Type:

    boolean

  Default:

    `False`

  Global toggle for enforcing the OpenSSL FIPS mode. This feature requires Python support. This is available in Python 3.9 in all environments and may have been backported to older Python versions on select environments. If the Python executable used does not support OpenSSL FIPS mode, an exception will be raised.

  Warning

  This option is deprecated for removal. Its value may be silently ignored in the future.

  Reason:

    FIPS_mode_set API was removed in OpenSSL 3.0.0. This option has no effect now.

heartbeat_in_pthread
  Type:

    boolean

  Default:

    `False`

  (DEPRECATED) It is recommend not to use this option anymore. Run the health check heartbeat thread through a native python thread by default. If this option is equal to False then the health check heartbeat will inherit the execution model from the parent process. For example if the parent process has monkey patched the stdlib by using eventlet/greenlet then the heartbeat will be run through a green thread. This option should be set to True only for the wsgi services.

  Warning

  This option is deprecated for removal. Its value may be silently ignored in the future.

  Reason:

    The option is related to Eventlet which will be removed. In addition this has never worked as expected with services using eventlet for core service framework.

kombu_reconnect_delay
  Type:

    floating point

  Default:

    `1.0`

  Minimum Value:

    0.0

  Maximum Value:

    4.5

  How long to wait (in seconds) before reconnecting in response to an AMQP consumer cancel notification.

kombu_reconnect_splay
  Type:

    floating point

  Default:

    `0.0`

  Minimum Value:

    0.0

  Random time to wait for when reconnecting in response to an AMQP consumer cancel notification.

kombu_compression
  Type:

    string

  Default:

    `<None>`

  EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not be used. This option may not be available in future versions.

kombu_missing_consumer_retry_timeout
  Type:

    integer

  Default:

    `60`

  How long to wait a missing client before abandoning to send it its replies. This value should not be longer than rpc_response_timeout.

  Deprecated Variations
  Group | Name
  --- | ---
  oslo_messaging_rabbit | kombu_reconnect_timeout

kombu_failover_strategy
  Type:

    string

  Default:

    `round-robin`

  Valid Values:

    round-robin, shuffle

  Determines how the next RabbitMQ node is chosen in case the one we are currently connected to becomes unavailable. Takes effect only if more than one RabbitMQ node is provided in config.

rabbit_login_method
  Type:

    string

  Default:

    `AMQPLAIN`

  Valid Values:

    PLAIN, AMQPLAIN, EXTERNAL, RABBIT-CR-DEMO

  The RabbitMQ login method.

rabbit_retry_interval
  Type:

    integer

  Default:

    `1`

  Minimum Value:

    1

  How frequently to retry connecting with RabbitMQ.

rabbit_retry_backoff
  Type:

    integer

  Default:

    `2`

  Minimum Value:

    0

  How long to backoff for between retries when connecting to RabbitMQ.

rabbit_interval_max
  Type:

    integer

  Default:

    `30`

  Minimum Value:

    1

  Maximum interval of RabbitMQ connection retries.

rabbit_ha_queues
  Type:

    boolean

  Default:

    `False`

  Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring is no longer controlled by the x-ha-policy argument when declaring a queue. If you just want to make sure that all queues (except those with auto-generated names) are mirrored across all nodes, run: “rabbitmqctl set_policy HA ‘^(?!amq.).*’ ‘{“ha-mode”: “all”}’ “

rabbit_quorum_queue
  Type:

    boolean

  Default:

    `False`

  Use quorum queues in RabbitMQ (x-queue-type: quorum). The quorum queue is a modern queue type for RabbitMQ implementing a durable, replicated FIFO queue based on the Raft consensus algorithm. It is available as of RabbitMQ 3.8.0. If set this option will conflict with the HA queues (`rabbit_ha_queues`) aka mirrored queues, in other words the HA queues should be disabled. Quorum queues are also durable by default so the amqp_durable_queues option is ignored when this option is enabled.

rabbit_transient_quorum_queue
  Type:

    boolean

  Default:

    `False`

  Use quorum queues for transients queues in RabbitMQ. Enabling this option will then make sure those queues are also using quorum kind of rabbit queues, which are HA by default.

rabbit_quorum_delivery_limit
  Type:

    integer

  Default:

    `0`

  Each time a message is redelivered to a consumer, a counter is incremented. Once the redelivery count exceeds the delivery limit the message gets dropped or dead-lettered (if a DLX exchange has been configured) Used only when rabbit_quorum_queue is enabled, Default 0 which means dont set a limit.

rabbit_quorum_max_memory_length
  Type:

    integer

  Default:

    `0`

  By default all messages are maintained in memory if a quorum queue grows in length it can put memory pressure on a cluster. This option can limit the number of messages in the quorum queue. Used only when rabbit_quorum_queue is enabled, Default 0 which means dont set a limit.

rabbit_quorum_max_memory_bytes
  Type:

    integer

  Default:

    `0`

  By default all messages are maintained in memory if a quorum queue grows in length it can put memory pressure on a cluster. This option can limit the number of memory bytes used by the quorum queue. Used only when rabbit_quorum_queue is enabled, Default 0 which means dont set a limit.

rabbit_transient_queues_ttl
  Type:

    integer

  Default:

    `1800`

  Minimum Value:

    0

  Positive integer representing duration in seconds for queue TTL (x-expires). Queues which are unused for the duration of the TTL are automatically deleted. The parameter affects only reply and fanout queues. Setting 0 as value will disable the x-expires. If doing so, make sure you have a rabbitmq policy to delete the queues or you deployment will create an infinite number of queue over time.In case rabbit_stream_fanout is set to True, this option will control data retention policy (x-max-age) for messages in the fanout queue rather then the queue duration itself. So the oldest data in the stream queue will be discarded from it once reaching TTL Setting to 0 will disable x-max-age for stream which make stream grow indefinitely filling up the diskspace

rabbit_qos_prefetch_count
  Type:

    integer

  Default:

    `0`

  Specifies the number of messages to prefetch. Setting to zero allows unlimited messages.

heartbeat_timeout_threshold
  Type:

    integer

  Default:

    `60`

  Number of seconds after which the Rabbit broker is considered down if heartbeat’s keep-alive fails (0 disables heartbeat).

heartbeat_rate
  Type:

    integer

  Default:

    `3`

  How often times during the heartbeat_timeout_threshold we check the heartbeat.

direct_mandatory_flag
  Type:

    boolean

  Default:

    `True`

  (DEPRECATED) Enable/Disable the RabbitMQ mandatory flag for direct send. The direct send is used as reply, so the MessageUndeliverable exception is raised in case the client queue does not exist.MessageUndeliverable exception will be used to loop for a timeout to lets a chance to sender to recover.This flag is deprecated and it will not be possible to deactivate this functionality anymore

  Warning

  This option is deprecated for removal. Its value may be silently ignored in the future.

  Reason:

    Mandatory flag no longer deactivable.

enable_cancel_on_failover
  Type:

    boolean

  Default:

    `False`

  Enable x-cancel-on-ha-failover flag so that rabbitmq server will cancel and notify consumerswhen queue is down

use_queue_manager
  Type:

    boolean

  Default:

    `False`

  Should we use consistant queue names or random ones

hostname
  Type:

    string

  Default:

    `node1.example.com`

  This option has a sample default set, which means that its actual default value may vary from the one documented above.

  Hostname used by queue manager. Defaults to the value returned by socket.gethostname().

processname
  Type:

    string

  Default:

    `nova-api`

  This option has a sample default set, which means that its actual default value may vary from the one documented above.

  Process name used by queue manager

rabbit_stream_fanout
  Type:

    boolean

  Default:

    `False`

  Use stream queues in RabbitMQ (x-queue-type: stream). Streams are a new persistent and replicated data structure (“queue type”) in RabbitMQ which models an append-only log with non-destructive consumer semantics. It is available as of RabbitMQ 3.9.0. If set this option will replace all fanout queues with only one stream queue.

## API

oslo_messaging.opts.list_opts()

  Return a list of oslo.config options available in the library.

  The returned list includes all oslo.config options which may be registered at runtime by the library.

  Each element of the list is a tuple. The first element is the name of the group under which the list of elements in the second element will be registered. A group name of None corresponds to the [DEFAULT] group in config files.

  This function is also discoverable via the ‘oslo_messaging’ entry point under the ‘oslo.config.opts’ namespace.

  The purpose of this is to allow tools like the Oslo sample config file generator to discover the options exposed to users by this library.

  Returns:

    a list of (group_name, opts) tuples

this page last updated: 2026-03-23 08:51:56

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug