Introduction to RabbitMQ

Here we will learn what is rabbitmq, uses of rabbitmq and why we need to use rabbitmq in our applications with examples.

What is RabbitMQ?

RabbitMQ is an AMQP messaging broker and it is the most popular open source and cross-platform message broker.

 

RabbitMQ is also a way to exchange the data between different platform applications such as a message sent from .Net application can be read by a Node.js application or Java application.

 

The RabbitMQ is built on Erlang general-purpose programming language and it is also used by WhatsApp for messaging.

What is AMQP?

The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for message-oriented and the features of AMQP are message orientation, queuing, routing (including point-to-point and publish-and-subscribe), reliability and security.

 

It was developed by JPMorgan and iMatix Corporation. AMQP was designed with the following main characteristics as goals:

 

  • Security
  • Reliability
  • Interoperability
  • Standard
  • Open

RabbitMQ is lightweight and easy to deploy on available premises and it supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.

 

Following is the pictorial representation of how RabbitMQ will act as a mediator between sender and consumer in our applications.

 

RabbitMQ Process Flow Diagram

Why and when to Use RabbitMQ?

Now a days most people will perform a multiple tasks in single application like sending emails or SMS, reports and it will create a heavy load on application so if you separate these tasks, then we will get more space (memory) to serve more requests.

 

By using RabbitMQ, we can remove some heavy work from our web applications such as sending a reports in Excel or Pdf format’s or sending an email, SMS or another task such as trigger some other applications to start processing.

 

RabbitMQ is an open source and cross-platform message broker so it’s easy to use with many languages such as .Net, Java, Python, Ruby, Node.Js.

RabbitMQ Supported Client Libraries 

RabbitMQ will support multiple operating systems and programming languages. RabbitMQ has provided a various client libraries for following programming languages. 

 

  • .Net 
  • Java
  • Spring Framework
  • Ruby
  • Python
  • PHP
  • Objective-C and Swift
  • JavaScript
  • GO
  • Perl