RabbitMQ Concepts
What is it?
RabbitMQ is a message broker, which accepts and forwards messsages.
Analogus to a postal system i.e., post box, post office and a letter carrier; RabbitMQ act as a delivery mechanism for messages.
Protocols
Originally implemented to support only AMPQ (Advanced Message Queueing Protocol), RabbitMQ now supports STOMP (Streaming Text Oriented Messaging Protocol) for streaming, HTTP, MQTT (MQ Telemetry Transport).
Details on supported protocols can be found here.
RabbitMQ Terminologies
ProducerA program that is reponsible for sending/producing a message.
ConsumerA program that is responsible to receive/consuming a message.
Message BrokersA program which is reponsible to receive message from publishers (aka producers) and route them to consumers.
ExchangeAn exchange is responsible for the routing of the messages to the different queues. An exchange accepts messages from the producer application and routes them to message queues with help of header attributes, bindings, and routing keys.
QueueA queue is the buffer that stores messages in the message broker.
BindingsBindings are rules that exchanges use (among other things) to route messages to queues. A binding is a link between a queue and an exchange.
AMQP EntitiesQueues, exchanges and bindings are collectively referred to as AMQP entities.
AMQP Model Diagram

Applications
Solves to Producer-Consumer-Synchronization-Problem.
Distributed Applications can achieve asynchronous communication with the use of MOM (Message Oriented Middleware) such as RabbitMQ.
Learn More
Last updated