Updated on 2025-07-14 GMT+08:00

Configuring Queue Mirroring

In a RabbitMQ cluster, queues can be mirrored across multiple nodes. In the event of a node failure, services are still available because the mirrors will take over services.

This section describes how to configure queue mirroring policies for a virtual host on the RabbitMQ management UI. Queues meet the policies are mirrored queues.

Notes and Constraints

Queue mirroring is not supported for RabbitMQ AMQP-0-9-1 instances.

Prerequisite

A cluster RabbitMQ instance has been created.

Configuring RabbitMQ Queue Mirroring

  1. Log in to the RabbitMQ management UI.
  2. Click the Admin tab.

    Figure 1 Admin tab page

  3. (Optional) Perform this step only if you need to specify a virtual host. Otherwise, go to 4.

    In the navigation tree on the right, choose Virtual Hosts, specify Name, and click Add virtual host to create a virtual host.
    Figure 2 Creating a virtual host

  4. In the navigation tree on the right, choose Policies and set policies for the virtual host.

    Figure 3 Setting virtual host policies
    Table 1 Policy elements

    Parameter

    Description

    Virtual Host

    Select the virtual host to which the policy applies. The slash (/) indicates the default virtual host.

    Name

    The policy name, which can be customized.

    Pattern

    Regular expression that defines the pattern for matching queues.

    Apply to

    Object to which the policy applies.

    Priority

    A larger value indicates a higher priority.

    Definition

    Definition of the mirror, which consists of ha-sync-mode, ha-mode, and ha-params.

    • ha-sync-mode: queue synchronization mode. Options: automatic and manual.
      • automatic: Data is automatically synchronized from the master.
      • manual: Data is manually synchronized from the master.
    • ha-mode: queue mirroring mode. Options: all, exactly, and nodes.
      • all: Mirror the queue across all nodes in the cluster.
      • exactly: Mirror the queue to a specific number (determined through ha-params) of nodes in the cluster.
      • nodes: Mirror the queue to specific nodes (determined through ha-params).
    • ha-params: This parameter is used in the ha-mode mode.
    NOTE:

    Mirroring queues to all nodes in a cluster may waste network and disk I/O resources. You are advised to set parameters as follows:

    • ha-sync-mode: automatic
    • ha-mode: exactly
    • ha-params: n/2 + 1. n is the total number of nodes in a cluster. The value of n/2 is rounded down.

      For example, if the total number of nodes in a cluster is 3, set ha-params to 2 (3/2 = 1.5, 1.5 is rounded down to 1, 1 + 1 = 2). Queues will be mirrored to a master and a standby node. This configuration ensures high data availability, and avoids unnecessary resource overhead.

  5. Click Add policy.

    The following figure shows a successfully added policy.

    Figure 4 Virtual host policy