OpenStack projects use an open standard for messaging middleware known as AMQP. This messaging middleware enables the OpenStack services that run on multiple servers to talk to each other. OpenStack Trove RPC supports three implementations of AMQP: RabbitMQ, Qpid, and ZeroMQ.
Use these options to configure the RabbitMQ messaging system:
Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
kombu_ssl_ca_certs = | (StrOpt) SSL certification authority file (valid only if SSL enabled) |
kombu_ssl_certfile = | (StrOpt) SSL cert file (valid only if SSL enabled) |
kombu_ssl_keyfile = | (StrOpt) SSL key file (valid only if SSL enabled) |
kombu_ssl_version = | (StrOpt) SSL version to use (valid only if SSL enabled). valid values are TLSv1, SSLv23 and SSLv3. SSLv2 may be available on some distributions |
rabbit_ha_queues = False | (BoolOpt) use H/A queues in RabbitMQ (x-ha-policy: all).You need to wipe RabbitMQ database when changing this option. |
rabbit_host = localhost | (StrOpt) The RabbitMQ broker address where a single node is used |
rabbit_hosts = $rabbit_host:$rabbit_port | (ListOpt) RabbitMQ HA cluster host:port pairs |
rabbit_max_retries = 0 | (IntOpt) maximum retries with trying to connect to RabbitMQ (the default of 0 implies an infinite retry count) |
rabbit_password = guest | (StrOpt) the RabbitMQ password |
rabbit_port = 5672 | (IntOpt) The RabbitMQ broker port where a single node is used |
rabbit_retry_backoff = 2 | (IntOpt) how long to backoff for between retries when connecting to RabbitMQ |
rabbit_retry_interval = 1 | (IntOpt) how frequently to retry connecting with RabbitMQ |
rabbit_use_ssl = False | (BoolOpt) connect over SSL for RabbitMQ |
rabbit_userid = guest | (StrOpt) the RabbitMQ userid |
rabbit_virtual_host = / | (StrOpt) the RabbitMQ virtual host |
Use these options to configure the Qpid messaging system:
Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
qpid_heartbeat = 60 | (IntOpt) Seconds between connection keepalive heartbeats |
qpid_hostname = localhost | (StrOpt) Qpid broker hostname |
qpid_hosts = $qpid_hostname:$qpid_port | (ListOpt) Qpid HA cluster host:port pairs |
qpid_password = | (StrOpt) Password for qpid connection |
qpid_port = 5672 | (IntOpt) Qpid broker port |
qpid_protocol = tcp | (StrOpt) Transport to use, either 'tcp' or 'ssl' |
qpid_sasl_mechanisms = | (StrOpt) Space separated list of SASL mechanisms to use for auth |
qpid_tcp_nodelay = True | (BoolOpt) Disable Nagle algorithm |
qpid_username = | (StrOpt) Username for qpid connection |
Use these options to configure the ZeroMq messaging system:
Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
rpc_zmq_bind_address = * | (StrOpt) ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. The "host" option should point or resolve to this address. |
rpc_zmq_contexts = 1 | (IntOpt) Number of ZeroMQ contexts, defaults to 1 |
rpc_zmq_host = localhost | (StrOpt) Name of this node. Must be a valid hostname, FQDN, or IP address. Must match "host" option, if running Nova. |
rpc_zmq_ipc_dir = /var/run/openstack | (StrOpt) Directory for holding IPC sockets |
rpc_zmq_matchmaker = trove.openstack.common.rpc.matchmaker.MatchMakerLocalhost | (StrOpt) MatchMaker driver |
rpc_zmq_port = 9501 | (IntOpt) ZeroMQ receiver listening port |
rpc_zmq_topic_backlog = None | (IntOpt) Maximum number of ingress messages to locally buffer per topic. Default is unlimited. |
Use these common options to configure the RabbitMQ, Qpid, and ZeroMq messaging drivers:
Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
amqp_auto_delete = False | (BoolOpt) Auto-delete queues in amqp. |
amqp_durable_queues = False | (BoolOpt) Use durable queues in amqp. |
conductor_manager = trove.conductor.manager.Manager | (StrOpt) Qualified class name to use for conductor manager. |
conductor_queue = trove-conductor | (StrOpt) Message queue name the Conductor will listen on. |
control_exchange = openstack | (StrOpt) AMQP exchange to connect to if using RabbitMQ or Qpid |
default_publisher_id = $host | (StrOpt) Default publisher_id for outgoing notifications |
notification_driver = [] | (MultiStrOpt) Driver or drivers to handle sending notifications |
notification_service_id = {'postgresql': 'ac277e0d-4f21-40aa-b347-1ea31e571720', 'couchbase': 'fa62fe68-74d9-4779-a24e-36f19602c415', 'mongodb': 'c8c907af-7375-456f-b929-b637ff9209ee', 'redis': 'b216ffc5-1947-456c-a4cf-70f94c05f7d0', 'mysql': '2f3ff068-2bfb-4f70-9a9d-a6bb65bc084b', 'cassandra': '459a230d-4e97-4344-9067-2a54a310b0ed'} | (DictOpt) Unique ID to tag notification events. |
notification_topics = notifications | (ListOpt) AMQP topic used for openstack notifications |
Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
allowed_rpc_exception_modules = nova.exception, cinder.exception, exceptions | (ListOpt) Modules of exceptions that are permitted to be recreatedupon receiving exception data from an rpc call. |
matchmaker_heartbeat_freq = 300 | (IntOpt) Heartbeat frequency |
matchmaker_heartbeat_ttl = 600 | (IntOpt) Heartbeat time-to-live. |
num_tries = 3 | (IntOpt) Number of times to check if a volume exists. |
report_interval = 10 | (IntOpt) The interval (in seconds) which periodic tasks are run. |
rpc_backend = trove.openstack.common.rpc.impl_kombu | (StrOpt) The messaging module to use, defaults to kombu. |
rpc_cast_timeout = 30 | (IntOpt) Seconds to wait before a cast expires (TTL). Only supported by impl_zmq. |
rpc_conn_pool_size = 30 | (IntOpt) Size of RPC connection pool |
rpc_response_timeout = 60 | (IntOpt) Seconds to wait for a response from call or multicall |
rpc_thread_pool_size = 64 | (IntOpt) Size of RPC thread pool |
[rpc_notifier2] | |
topics = notifications | (ListOpt) AMQP topic(s) used for openstack notifications |
[secure_messages] | |
enabled = True | (BoolOpt) Whether Secure Messaging (Signing) is enabled, defaults to enabled |
encrypt = False | (BoolOpt) Whether Secure Messaging (Encryption) is enabled, defaults to not enabled |
enforced = False | (BoolOpt) Whether Secure Messaging (Signing) is enforced, defaults to not enforced |
kds_endpoint = None | (StrOpt) KDS endpoint (ex: http://kds.example.com:35357/v3) |
secret_key = None | (MultiStrOpt) A list of keys: (ex: name:<base64 encoded key>), ignored if secret_keys_file is set |
secret_keys_file = None | (StrOpt) Path to the file containing the keys, takes precedence over secret_key |