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_amqp¶
- container_name¶
- Type:
string
- Default:
<None>
Name for the AMQP container. must be globally unique. Defaults to a generated UUID
¶ Group
Name
amqp1
container_name
- idle_timeout¶
- Type:
integer
- Default:
0
Timeout for inactive connections (in seconds)
¶ Group
Name
amqp1
idle_timeout
- ssl¶
- Type:
boolean
- Default:
False
Attempt to connect via SSL. If no other ssl-related parameters are given, it will use the system’s CA-bundle to verify the server’s certificate.
- ssl_ca_file¶
- Type:
string
- Default:
''
CA certificate PEM file used to verify the server’s certificate
¶ Group
Name
amqp1
ssl_ca_file
- ssl_cert_file¶
- Type:
string
- Default:
''
Self-identifying certificate PEM file for client authentication
¶ Group
Name
amqp1
ssl_cert_file
- ssl_key_file¶
- Type:
string
- Default:
''
Private key PEM file used to sign ssl_cert_file certificate (optional)
¶ Group
Name
amqp1
ssl_key_file
- ssl_key_password¶
- Type:
string
- Default:
<None>
Password for decrypting ssl_key_file (if encrypted)
¶ Group
Name
amqp1
ssl_key_password
- ssl_verify_vhost¶
- Type:
boolean
- Default:
False
By default SSL checks that the name in the server’s certificate matches the hostname in the transport_url. In some configurations it may be preferable to use the virtual hostname instead, for example if the server uses the Server Name Indication TLS extension (rfc6066) to provide a certificate per virtual host. Set ssl_verify_vhost to True if the server’s SSL certificate uses the virtual host name instead of the DNS name.
- sasl_mechanisms¶
- Type:
string
- Default:
''
Space separated list of acceptable SASL mechanisms
¶ Group
Name
amqp1
sasl_mechanisms
- sasl_config_dir¶
- Type:
string
- Default:
''
Path to directory that contains the SASL configuration
¶ Group
Name
amqp1
sasl_config_dir
- sasl_config_name¶
- Type:
string
- Default:
''
Name of configuration file (without .conf suffix)
¶ Group
Name
amqp1
sasl_config_name
- sasl_default_realm¶
- Type:
string
- Default:
''
SASL realm to use if no realm present in username
- connection_retry_interval¶
- Type:
integer
- Default:
1
- Minimum Value:
1
Seconds to pause before attempting to re-connect.
- connection_retry_backoff¶
- Type:
integer
- Default:
2
- Minimum Value:
0
Increase the connection_retry_interval by this many seconds after each unsuccessful failover attempt.
- connection_retry_interval_max¶
- Type:
integer
- Default:
30
- Minimum Value:
1
Maximum limit for connection_retry_interval + connection_retry_backoff
- link_retry_delay¶
- Type:
integer
- Default:
10
- Minimum Value:
1
Time to pause between re-connecting an AMQP 1.0 link that failed due to a recoverable error.
- default_reply_retry¶
- Type:
integer
- Default:
0
- Minimum Value:
-1
The maximum number of attempts to re-send a reply message which failed due to a recoverable error.
- default_reply_timeout¶
- Type:
integer
- Default:
30
- Minimum Value:
5
The deadline for an rpc reply message delivery.
- default_send_timeout¶
- Type:
integer
- Default:
30
- Minimum Value:
5
The deadline for an rpc cast or call message delivery. Only used when caller does not provide a timeout expiry.
- default_notify_timeout¶
- Type:
integer
- Default:
30
- Minimum Value:
5
The deadline for a sent notification message delivery. Only used when caller does not provide a timeout expiry.
- default_sender_link_timeout¶
- Type:
integer
- Default:
600
- Minimum Value:
1
The duration to schedule a purge of idle sender links. Detach link after expiry.
- addressing_mode¶
- Type:
string
- Default:
dynamic
Indicates the addressing mode used by the driver. Permitted values: ‘legacy’ - use legacy non-routable addressing ‘routable’ - use routable addresses ‘dynamic’ - use legacy addresses if the message bus does not support routing otherwise use routable addressing
- pseudo_vhost¶
- Type:
boolean
- Default:
True
Enable virtual host support for those message buses that do not natively support virtual hosting (such as qpidd). When set to true the virtual host name will be added to all message bus addresses, effectively creating a private ‘subnet’ per virtual host. Set to False if the message bus supports virtual hosting using the ‘hostname’ field in the AMQP 1.0 Open performative as the name of the virtual host.
- server_request_prefix¶
- Type:
string
- Default:
exclusive
address prefix used when sending to a specific server
¶ Group
Name
amqp1
server_request_prefix
- broadcast_prefix¶
- Type:
string
- Default:
broadcast
address prefix used when broadcasting to all servers
¶ Group
Name
amqp1
broadcast_prefix
- group_request_prefix¶
- Type:
string
- Default:
unicast
address prefix when sending to any server in group
¶ Group
Name
amqp1
group_request_prefix
- rpc_address_prefix¶
- Type:
string
- Default:
openstack.org/om/rpc
Address prefix for all generated RPC addresses
- notify_address_prefix¶
- Type:
string
- Default:
openstack.org/om/notify
Address prefix for all generated Notification addresses
- multicast_address¶
- Type:
string
- Default:
multicast
Appended to the address prefix when sending a fanout message. Used by the message bus to identify fanout messages.
- unicast_address¶
- Type:
string
- Default:
unicast
Appended to the address prefix when sending to a particular RPC/Notification server. Used by the message bus to identify messages sent to a single destination.
- anycast_address¶
- Type:
string
- Default:
anycast
Appended to the address prefix when sending to a group of consumers. Used by the message bus to identify messages that should be delivered in a round-robin fashion across consumers.
- default_notification_exchange¶
- Type:
string
- Default:
<None>
Exchange name used in notification addresses. Exchange name resolution precedence: Target.exchange if set else default_notification_exchange if set else control_exchange if set else ‘notify’
- default_rpc_exchange¶
- Type:
string
- Default:
<None>
Exchange name used in RPC addresses. Exchange name resolution precedence: Target.exchange if set else default_rpc_exchange if set else control_exchange if set else ‘rpc’
- reply_link_credit¶
- Type:
integer
- Default:
200
- Minimum Value:
1
Window size for incoming RPC Reply messages.
- rpc_server_credit¶
- Type:
integer
- Default:
100
- Minimum Value:
1
Window size for incoming RPC Request messages
- notify_server_credit¶
- Type:
integer
- Default:
100
- Minimum Value:
1
Window size for incoming Notification messages
- pre_settled¶
- Type:
multi-valued
- Default:
rpc-cast
- Default:
rpc-reply
Send messages of this type pre-settled. Pre-settled messages will not receive acknowledgement from the peer. Note well: pre-settled messages may be silently discarded if the delivery fails. Permitted values: ‘rpc-call’ - send RPC Calls pre-settled ‘rpc-reply’- send RPC Replies pre-settled ‘rpc-cast’ - Send RPC Casts pre-settled ‘notify’ - Send Notifications pre-settled
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