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.
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.
rpc_backend=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:
| Configuration option = Default value | Description | 
|---|---|
| [DEFAULT] | |
| 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 | 
| 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) If SSL is enabled, the SSL version to use. Valid values are TLSv1, SSLv23 and SSLv3. SSLv2 might be available on some distributions. | 
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:
rpc_backend=neutron.openstack.common.rpc.impl_qpid
      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.
![]()  | Note | 
|---|---|
The   | 
qpid_hostname=hostname.example.com
      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:
qpid_port=12345
      If you configure the Qpid broker to require authentication, you must add a user name and password to the configuration:
qpid_username=username
qpid_password=password
      By default, TCP is used as the transport. To enable SSL, set
      the qpid_protocol option:
qpid_protocol=ssl
      Use these additional options to configure the Qpid messaging driver for OpenStack Oslo RPC. These options are used infrequently.
| 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_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 | 
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:
| 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 = 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. | 
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. | 
| 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 | 
| [AGENT] | |
| rpc_support_old_agents = False | (BoolOpt) Enable server RPC compatibility with old agents | 
| [matchmaker_ring] | |
| ringfile = /etc/oslo/matchmaker_ring.json | (StrOpt) Matchmaker ring file (JSON) | 
| [rpc_notifier2] | |
| topics = notifications | (ListOpt) AMQP topic(s) used for openstack notifications | 
| Configuration option = Default value | Description | 
|---|---|
| [DEFAULT] | |
| 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 | 
| Configuration option = Default value | Description | 
|---|---|
| [DEFAULT] | |
| host = oslo | (StrOpt) The hostname Neutron is running on | 
| [matchmaker_redis] | |
| host = 127.0.0.1 | (StrOpt) Host to locate redis | 
| password = None | (StrOpt) Password for Redis server. (optional) | 
| port = 6379 | (IntOpt) Use this port to connect to redis host. | 

![[Note]](../common/images/admon/note.png)
