Software Architectures logo Software Architectures

RabbitMQ logo

Contents

What is RabbitMQ

RabbitMQ is an open-source message-broker software that implements various message-passing protocols such as Advance Message Queuing Protocol (AMQP), Streaming Text Oriented Messaging Protocol (STOMP), MQ Telemetry Transport (MQTT). It is one of the most popular open-source message brokers.

The AMQP Protocol

AMQP is an open standard protocol for message-oriented middleware.
RabbitMQ was originally developed to support AMQP version 9-0-1 (that is an early and different version of the standard AMQP 1.0 specification), however, AMQP 1.0 is supported via a plug-in.

The AMQP model

There are three main types of components:

RabbitMQ intro4

Generally, exchanges have some attributes:

More details here.

Queues

In RabbitMQ, a queue is an ordered collection of messages. Messages are enqueued and dequeued in a FIFO (First In, First Out) manner. However, the ordering of messages can be affected by message priorities or requeueing. Queues, like exchanges, have attributes:

In the next section, we will start a “dockerized” instance of RabbitMQ to see how it works.

Next: RabbitMQ - Quickstart