RabbitMQ offers a variety of features to let you trade off
performance with reliability, including persistence,
delivery acknowledgements, publisher confirms, and high
Messages are routed through exchanges before arriving at
queues. RabbitMQ features several built-in exchange types
for typical routing logic. For more complex routing you
can bind exchanges
together or even write your own exchange type as a
Several RabbitMQ servers on a local network can
be clustered together, forming
a single logical broker.
For servers that need to be more loosely and unreliably
connected than clustering allows, RabbitMQ offers a
Highly Available Queues
Queues can be mirrored across several
machines in a cluster, ensuring that even in the event of
hardware failure your messages are safe.
RabbitMQ supports messaging over a
variety of messaging protocols.
There are RabbitMQ clients for almost
any language you can think of.
RabbitMQ ships with an easy-to
use management UI that allows
you to monitor and control every aspect of your message
If your messaging system is misbehaving, RabbitMQ
offers tracing support to let
you find out what's going on.
RabbitMQ ships with a variety
of plugins extending it in
different ways, and you can
also write your own.