Atom feed of this document
Icehouse -  Icehouse -  Icehouse -  Icehouse -  Icehouse -  Icehouse -  Icehouse -  Icehouse - 

 Configure the Oslo RPC messaging system

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 Oslo RPC supports three implementations of AMQP: RabbitMQ, Qpid, and ZeroMQ.

 Configure RabbitMQ

OpenStack Oslo RPC uses RabbitMQ by default. Use these options to configure the RabbitMQ message system. The rpc_backend option is optional as long as RabbitMQ is the default messaging system. However, if it is included the configuration, you must set it to neutron.openstack.common.rpc.impl_kombu.


Use these options to configure the RabbitMQ messaging system. You can configure messaging communication for different installation scenarios, tune retries for RabbitMQ, and define the size of the RPC thread pool. To monitor notifications through RabbitMQ, you must set the notification_driver option to neutron.notifier.rabbit_notifier in the neutron.conf file:

Table 7.33. Description of configuration options for rabbitmq
Configuration option = Default value Description
rabbit_ha_queues = False (BoolOpt) Use HA queues in RabbitMQ (x-ha-policy: all). If you change this option, you must wipe the RabbitMQ database.
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 number of RabbitMQ connection retries. Default is 0 (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

Table 7.34. Description of configuration options for kombu
Configuration option = Default value Description
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) If SSL is enabled, the SSL version to use. Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 might be available on some distributions.

 Configure Qpid

Use these options to configure the Qpid messaging system for OpenStack Oslo RPC. Qpid is not the default messaging system, so you must enable it by setting the rpc_backend option in the neutron.conf file:


This critical option points the compute nodes to the Qpid broker (server). Set the qpid_hostname option to the host name where the broker runs in the neutron.conf file.


The --qpid_hostname option accepts a host name or IP address value.

If the Qpid broker listens on a port other than the AMQP default of 5672, you must set the qpid_port option to that value:


If you configure the Qpid broker to require authentication, you must add a user name and password to the configuration:


By default, TCP is used as the transport. To enable SSL, set the qpid_protocol option:


Use these additional options to configure the Qpid messaging driver for OpenStack Oslo RPC. These options are used infrequently.

Table 7.35. Description of configuration options for qpid
Configuration option = Default value Description
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_topology_version = 1 (IntOpt) The qpid topology version to use. Version 1 is what was originally used by impl_qpid. Version 2 includes some backwards-incompatible changes that allow broker federation to work. Users should update to version 2 when they are able to take everything down, as it requires a clean break.
qpid_username = (StrOpt) Username for qpid connection

 Configure ZeroMQ

Use these options to configure the ZeroMQ messaging system for OpenStack Oslo RPC. ZeroMQ is not the default messaging system, so you must enable it by setting the rpc_backend option in the neutron.conf file:

Table 7.36. Description of configuration options for zeromq
Configuration option = Default value Description
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 = oslo (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 = neutron.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.

 Configure messaging

Use these common options to configure the RabbitMQ, Qpid, and ZeroMq messaging drivers:

Table 7.37. Description of configuration options for rpc
Configuration option = Default value Description
amqp_auto_delete = False (BoolOpt) Auto-delete queues in amqp.
amqp_durable_queues = False (BoolOpt) Use durable queues in amqp.
control_exchange = neutron (StrOpt) AMQP exchange to connect to if using RabbitMQ or Qpid
matchmaker_heartbeat_freq = 300 (IntOpt) Heartbeat frequency
matchmaker_heartbeat_ttl = 600 (IntOpt) Heartbeat time-to-live.
rpc_backend = neutron.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_workers = 0 (IntOpt) Number of RPC worker processes for service
rpc_support_old_agents = False (BoolOpt) Enable server RPC compatibility with old agents
ringfile = /etc/oslo/matchmaker_ring.json (StrOpt) Matchmaker ring file (JSON)
topics = notifications (ListOpt) AMQP topic(s) used for openstack notifications

Table 7.38. Description of configuration options for notifier
Configuration option = Default value Description
default_notification_level = INFO (StrOpt) Default notification level for outgoing notifications
default_publisher_id = $host (StrOpt) Default publisher_id for outgoing notifications
notification_driver = [] (MultiStrOpt) Driver or drivers to handle sending notifications
notification_topics = notifications (ListOpt) AMQP topic used for openstack notifications

Table 7.39. Description of configuration options for redis
Configuration option = Default value Description
host = oslo (StrOpt) The hostname Neutron is running on
host = (StrOpt) Host to locate redis
password = None (StrOpt) Password for Redis server. (optional)
port = 6379 (IntOpt) Use this port to connect to redis host.

Questions? Discuss on
Found an error? Report a bug against this page

loading table of contents...