WHAT IS RABBITMQ
RabbitMQ is a messaging broker
an intermediary for messaging
Gives your applications a common platform to send
and receive messages
a safe place to live until received.
NEED OF MESSAGING
Messaging enables software applications to
connect and scale
Different Component of application can
connect to each other
Messaging is Asynchronous
Decoupling of applications
Queuing for delivery
Monitor data feeds
Durable (the queue will survive a broker restart)
Exclusive (used by only one connection and the
queue will be deleted when that connection closes)
Auto-delete (queue is deleted when last consumer
Arguments (some brokers use it to implement
additional features like message TTL)
Can be persistent
Can have a priority level
Message – body +headers
Broker never modifies content of message
AMQP connections are typically long-lived
• Connections are multiplexed
• lightweight connections that share a single TCP
• Communication on a particular channel is completely
separate from communication on another channel
Transaction mode –take more than 4 messages to
publish 10000 messages
Required fsync() both sides
Publisher Confirmation mode: 100 times faster than
transaction – asynchronous
Messages published are put in a set they are
queued only when they receive ack
Clustering connects multiple machines together to
form a single logical broker
Communication is via Erlang message-passing, so
all nodes in the cluster must have the same Erlang
and all machines in the cluster must run the same
versions of RabbitMQ and Erlang.
Virtual hosts, exchanges, users, and permissions
are automatically mirrored across all nodes in a
A client connecting to any node in a cluster can see
all queues in the cluster, even if they are not
located on that node.
MIRRORING QUEUES/HIGH AVAILIBILITY
Thus clients consuming from a mirrored queue are
in fact consuming from the master.
Publish happens on all queues
No concept of master/slave for publishing activity
In case of failure – message loss from master in
case of unsynchronysation
Redelivery of messages in case of master failure
OTHER FEATURES OF RABBITMQ
Management ui etc
Barclays Bank PLC
Cisco Systems, Inc.
Deutsche Börse Systems
Envoy Technologies Inc.
JPMorgan Chase Bank & Co.
• Microsoft Corporation
• Rabbit Technologies, a joint venture of
CohesiveFT and LShift
• Red Hat, Inc.
• Solace Systems, Inc.
• Tervela, Inc.
• TWST Process Innovations
• WSO2, Inc.
• 29West Inc.