RabbitMQ Producer

The RabbitMQ Producer (also known as a publisher) is responsible for sending messages to RabbitMQ exchanges, which then route messages to one or more queues based on defined bindings.

RabbitMQ provides:

  • Reliable messaging with acknowledgments and durable queues.

  • Scalability with clustering and multiple queue types.

  • Flexible routing with multiple exchange types (direct, fanout, topic, headers).

The RabbitMQ Producer ensures reliable message-based communication and integrates seamlessly into pipelines for distributed, event-driven data flows.

Configuration Sections

All configurations are classified into the following sections:

  • Basic Information

  • Meta Information

  • Resource Configuration

Basic Information Tab

The Basic Information tab defines general execution and deployment parameters.

Field
Description
Required

Invocation Type

Select execution mode: Batch or Real-Time.

Yes

Deployment Type

Displays the deployment type of the component (pre-selected).

Yes

Container Image Version

Displays the Docker image version used (pre-selected).

Yes

Failover Event

Select an event to handle failures.

Optional

Batch Size

Maximum number of records processed per cycle (minimum: 10).

Yes

Meta Information Tab

The Meta Information tab configures RabbitMQ connection details, queue/exchange settings, and routing behavior.

Connection Settings

Field
Description
Required

Host

RabbitMQ server hostname or IP address.

Yes

Port

RabbitMQ server port (default: 5672).

Yes

Username

Username for authentication.

Yes

Password

Password for authentication.

Yes

Virtual Host

Logical grouping of RabbitMQ resources (queues, exchanges, bindings). Used to isolate applications.

Optional

Queue Settings

Field
Description
Required

Queue

Destination queue where messages will be sent for consumption.

Yes

Query Type

Select queue type: Classic, Stream, or Quorum.

Yes

  • Classic: FIFO queue on a single node.

  • Stream: Distributed queue for high-throughput, parallel processing.

  • Quorum: Replicated queue across nodes for durability and reliability.

Exchange Settings

Field
Description
Required

Exchange

Name of the RabbitMQ exchange that routes messages.

Yes

Exchange Type

Select routing type: Direct, Fanout, Topic, or Headers.

Yes

Direct Exchange

  • Routes messages to queues based on exact match between publish key and binding key.

  • Required fields: Bind Key, Publish Key.

Fanout Exchange

  • Broadcasts messages to all bound queues without considering keys.

  • Required fields: Bind Key, Publish Key.

Topic Exchange

  • Routes messages based on routing patterns and wildcards (*, #).

  • Required fields: Bind Key, Publish Key.

Headers Exchange

  • Routes messages based on header attributes.

  • Required fields: X-Match, Binding Headers, Publishing Headers.

Field
Description
Options

X-Match

Determines header matching logic.

Any (match at least one header), All (match all headers).

Binding Headers

Key-value pairs that define header conditions for routing.

User-defined

Publishing Headers

Key-value pairs attached to published messages.

User-defined

Saving the Configuration

  1. Configure connection, queue, and exchange details in the Meta Information tab.

  2. Click Save Component (Storage icon).

  3. A success message confirms the configuration.

  4. Activate the pipeline to begin publishing messages.

Example Workflow

  1. Configure RabbitMQ Producer with:

    • Host: rabbitmq-server.local

    • Port: 5672

    • Username: pipeline_user

    • Queue: transaction_queue

    • Exchange: transaction_exchange

    • Exchange Type: Topic

    • Publish Key: transactions.completed

    • Binding Key: transactions.*

  2. Connect an input event carrying processed transaction data.

  3. Activate the pipeline.

  4. Messages are published to the transaction_exchange and routed to queues subscribed to the transactions.* pattern.