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.
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.