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¶
- rpc_conn_pool_size¶
- Type:
integer
- Default:
30
- Minimum Value:
1
Size of RPC connection pool.
¶ Group
Name
DEFAULT
rpc_conn_pool_size
- 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
- executor_thread_pool_size¶
- Type:
integer
- Default:
64
Size of executor thread pool when executor is threading or eventlet.
¶ 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
- pool_size¶
- Type:
integer
- Default:
10
Pool Size for Kafka Consumers
Warning
This option is deprecated for removal. Its value may be silently ignored in the future.
- Reason:
Driver no longer uses connection pool.
- conn_pool_min_size¶
- Type:
integer
- Default:
2
The pool size limit for connections expiration policy
Warning
This option is deprecated for removal. Its value may be silently ignored in the future.
- Reason:
Driver no longer uses connection pool.
- conn_pool_ttl¶
- Type:
integer
- Default:
1200
The time-to-live in sec of idle connections in the pool
Warning
This option is deprecated for removal. Its value may be silently ignored in the future.
- Reason:
Driver no longer uses connection pool.
- 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
¶ Group
Name
DEFAULT
notification_driver
- 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.
¶ Group
Name
DEFAULT
notification_transport_url
- topics¶
- Type:
list
- Default:
['notifications']
AMQP topic used for OpenStack notifications.
¶ Group
Name
rpc_notifier2
topics
DEFAULT
notification_topics
- 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.
¶ Group
Name
DEFAULT
amqp_auto_delete
- ssl¶
- Type:
boolean
- Default:
False
Connect over SSL.
¶ Group
Name
oslo_messaging_rabbit
rabbit_use_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.
¶ Group
Name
oslo_messaging_rabbit
kombu_ssl_version
- ssl_key_file¶
- Type:
string
- Default:
''
SSL key file (valid only if SSL enabled).
¶ Group
Name
oslo_messaging_rabbit
kombu_ssl_keyfile
- ssl_cert_file¶
- Type:
string
- Default:
''
SSL cert file (valid only if SSL enabled).
¶ Group
Name
oslo_messaging_rabbit
kombu_ssl_certfile
- ssl_ca_file¶
- Type:
string
- Default:
''
SSL certification authority file (valid only if SSL enabled).
¶ Group
Name
oslo_messaging_rabbit
kombu_ssl_ca_certs
- 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.
¶ Group
Name
DEFAULT
kombu_reconnect_delay
- 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.
¶ 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.
¶ Group
Name
DEFAULT
rabbit_login_method
- rabbit_retry_interval¶
- Type:
integer
- Default:
1
How frequently to retry connecting with RabbitMQ.
- rabbit_retry_backoff¶
- Type:
integer
- Default:
2
How long to backoff for between retries when connecting to RabbitMQ.
¶ Group
Name
DEFAULT
rabbit_retry_backoff
- rabbit_interval_max¶
- Type:
integer
- Default:
30
Maximum interval of RabbitMQ connection retries. Default is 30 seconds.
- 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”}’ “
¶ Group
Name
DEFAULT
rabbit_ha_queues
- 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.
¶ Group
Name
oslo_messaging_rabbit
rabbit_quroum_max_memory_length
- 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.
¶ Group
Name
oslo_messaging_rabbit
rabbit_quroum_max_memory_bytes
- 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