Apache Storm Distributed Messaging System

What is Distributed Messaging System?

A distributed messaging system is used to send messages asynchronously between client applications and messaging systems. It provides rich features such as persistence, scalability, and reliability. The model, which most of the messaging system follows is called publish-subscribe.

In the publish-subscribe model, a sender will send messages which will be called the publisher, and the receiver who will receive messages will be called a subscriber. After broadcasting messages from the publisher, the subscribers have two ways to receive those messages, first, one is called topic based and the second one is called content-based.

The following figure shows the architecture of the distributed messaging system.

cloudduggu storm messaging


The following is the list of well-known messaging systems.


1. Apache Kafka

Apache Kafka is an open-source, distributed, and publish-subscribe model-based system. It was originally developed by LinkedIn. Kafka is a very reliable, fast, and scalable messaging system.


2. Apache ActiveMQ

Apache ActiveMQ is an open-source messaging system. It is written in Java and it provides a full java message service client.


3. ZeroMQ

ZeroMQ is an asynchronous messaging system that is used in distributed and concurrent applications. It can run without a broker.


4. JMS

JVM is a java messaging service that provides an API to send messages from one application to another. It works on the model of publish-subscribe and provides a sure of message delivery.


5. RabbitMQ

RabbitMQ is an open-source and distributed messaging software. It can run on all platforms.