Enable queue mirroring

Enable queue mirroringΒΆ

Note

This feature is available starting from the MCP 2019.2.15 maintenance update. Before using the feature, follow the steps described in Apply maintenance updates.

Mirroring policy enables RabbitMQ to mirror the queues content to an additional RabbitMQ node in the RabbitMQ cluster. Such approach reduces failures during the RabbitMQ cluster recovery.

Warning

  • This feature is of use only for clustered RabbitMQ configurations.
  • Enabling mirroring for queues and exchanges in RabbitMQ may increase the message passing latency and prolong the RabbitMQ cluster recovery after a network partition. Therefore, we recommend accomplishing the procedure on a staging environment before applying it to production.

To enable queue mirroring:

  1. Open your project Git repository with the Reclass model on the cluster level.

  2. In <cluster_name>/openstack/message_queue.yml, specify ha_exactly_ttl_120 in classes:

    classes:
    ...
    - system.rabbitmq.server.vhost.openstack
    - system.rabbitmq.server.vhost.openstack.without_rpc_ha
    - system.rabbitmq.server.vhost.openstack.ha_exactly_ttl_120
    ...
    
  3. Log in to the Salt Master node.

  4. Apply the rabbitmq.server state:

    salt -C 'I@rabbitmq:server and *01*' state.sls rabbitmq.server