Home

RabbitMQ

RabbitMQ is an open-source message broker that implements the Advanced Message Queuing Protocol (AMQP). It enables applications to communicate by sending messages through a broker rather than making direct synchronous calls, supporting asynchronous, decoupled architectures. The server runs on the Erlang virtual machine and is designed to be scalable, reliable, and feature-rich across varied deployment environments.

Core messaging model: Producers publish messages to exchanges, from which a routing decision places messages into

Reliability and scaling: RabbitMQ supports acknowledgments, publisher confirms, and transactions to improve delivery guarantees. It offers

Administration and ecosystem: A management plugin provides a web-based UI and HTTP API to monitor and manage

Use cases: It is widely used for decoupled microservices communication, asynchronous task queues, event distribution, and

one
or
more
queues.
Consumers
retrieve
messages
from
queues.
Exchanges
implement
routing
rules
and
come
in
several
types,
including
direct,
fanout,
topic,
and
headers.
Messages
can
be
marked
durable
and
persisted
to
disk
to
survive
broker
restarts,
and
deliveries
can
be
acknowledged
by
consumers
to
ensure
reliability.
The
system
supports
features
such
as
message
TTL,
dead-lettering,
and
selective
acknowledgments.
high-availability
options
such
as
replicated
queues
in
older
setups
and
quorum
queues
that
are
fully
replicated
across
nodes.
Clustering
enables
scale-out,
while
virtual
hosts
provide
multi-tenant
isolation
within
a
single
broker
deployment.
brokers,
queues,
exchanges,
and
bindings.
Official
client
libraries
exist
for
many
languages,
including
Java,
Python,
JavaScript,
.NET,
and
Go.
RabbitMQ
can
be
deployed
on-premises,
in
virtualized
or
cloud
environments,
and
is
commonly
run
in
containers
and
orchestrated
with
Kubernetes.
Plugins
extend
protocol
support
and
functionality.
reliable
background
processing.