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.
ConnectionA TCP connection between your application and the broker.
ChannelA virtual connection inside a connection. When publishing or consuming messages from a queue - it's all done over a channel.
Vhost, virtual hostVirtual hosts provide a way to segregate applications using the same RabbitMQ instance. Different users can have different access privileges to different vhost and queues and exchanges can be created so they only exist in one vhost.
ClusterA cluster consists of a set of connected computers that work together. If the RabbitMQ instance consisting of more than one node - it is called a RabbitMQ cluster. A cluster is a group of nodes i.e., a group of computers.
NodeA node is a single computer the RabbitMQ cluster
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