Advanced
Тема интерфейса

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.

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

    Specify the virtual host. To set policies for a specific virtual host, select the virtual host created in 3 from the Virtual host drop-down list box. If no virtual host has been created, the default value / is used.

    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