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.
-
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