Updated on 2024-10-25 GMT+08:00

Creating a RabbitMQ Exchange

Exchanges receive and assign messages. Producers send messages to exchanges first, rather than directly to queues. Exchanges route messages to one or more queues based on routing keys. If there are no matching queues, the messages are discarded.

This section describes how to create an exchange on the console. For RabbitMQ 3.x.x instances, seven exchanges are created by default after virtual host creation. These exchanges include (AMQP default), amq.direct, amq.fanout, amq.headers, amq.match, amq.rabbitmq.trace, and amq.topic.

Prerequisites

A virtual host has been created.

Creating a RabbitMQ Exchange

  1. Log in to the console.
  2. In the upper left corner, click and select a region.

    Select the region where your RabbitMQ instance is.

  3. Click and choose Middleware > Distributed Message Service for RabbitMQ to open the console of DMS for RabbitMQ.
  4. Click an instance name to go to the instance details page.
  5. In the navigation pane, choose Virtual Hosts.
  6. Click a virtual host name.
  7. On the Exchange tab page, click Create Exchange. The Create Exchange dialog box is displayed.
  8. Configure the exchange name and other parameters by referring to Table 1.

    Table 1 Exchange parameters

    Parameter

    Description

    Name

    When creating an exchange, you can modify the automatically generated exchange name. Naming rules: 3–128 characters and only letters, digits, percent signs (%), vertical bars (|), hyphens (-), underscores (_), slashes (/), or backslashes (\).

    The name cannot be changed once the exchange is created.

    Type

    Select a routing type. For details, see Exchanges.

    • direct: Exchanges route messages to matching queues based on the routing keys.
    • fanout: Exchanges route messages to all bound queues.
    • topic: Exchanges route messages to queues based on routing key wildcard matching.
    • headers: Exchanges are related to the message headers. Routing keys are not used. Exchanges route messages based on matching between key-value pairs in the message headers and the binding (a key-value pair).
    • x-delayed-message: Exchanges delay message delivery. Delayed messages will be routed by the exchange type-specified rules.
    • x-consistent-hash: Exchanges calculate a hash value based on a routing key, and route a message to the hashed queue.

    x-delayed-type

    This parameter is displayed only when Type is set to x-delayed-message.

    Messages are routed by x-delayed-type-specified rules.

    • direct: Exchanges route messages to matching queues based on the routing keys.
    • fanout: Exchanges route messages to all bound queues.
    • topic: Exchanges route messages to queues based on routing key wildcard matching.
    • headers: Exchanges are related to the message headers. Routing keys are not used. Exchanges route messages based on matching between key-value pairs in the message headers and the binding (a key-value pair).

    Auto-Delete

    Indicates whether to enable automatic exchange deletion.

    • Enabled: The exchange will be automatically deleted when the last bound queue unbound from the exchange.
    • Disabled: The exchange will not be deleted when the last bound queue unbound from the exchange.

    Persistence

    This parameter is mandatory for RabbitMQ 3.x.x instances, and enabled by default for RabbitMQ AMQP-0-9-1 ones.

    Indicates whether to enable exchange persistence.

    • Enabled: The exchange survives server restart.
    • Disabled: The exchange will be deleted after server restarts and needs to be recreated.

    Internal

    Only RabbitMQ 3.x.x instances have this parameter.

    Indicates whether exchanges are for internal use.

    • Yes: An exchange can only bind another exchange instead of a queue.
    • No: Exchanges can bind exchanges and queues.

  9. Click OK.

    View the created exchange on the Exchange tab page.