Message Brokers : An introduction
What is a Message Brokers?
A message broker (also known as an integration broker or interface engine) is an intermediary computer program module that translates a message from the formal messaging protocol of the sender to the formal messaging protocol of the receiver. Message brokers are elements in telecommunication or computer networks where software applications communicate by exchanging formally-defined messages. Message brokers are a building block of message-oriented middleware (MOM) but are typically not a replacement for traditional middleware like MOM and remote procedure call (RPC).
A message broker is also known as an integration broker or middleware.
A message broker is primarily used for message validation, transformation and routing. There are three types of message brokers – point-to-point, publish-subscribe, and a hybrid of both. The purpose of a broker is to –
- Route or transfer messages to one or more destinations with an alternative representation.
- Perform message aggregation, and to decompose them to multiple messages
- Sending messages to their destination
- Recomposing the responses into one message
- Respond to the messages received / errors
- Communicate with external repository to augment a message
List of message broker software
I provide a list message brokers from Wikipedia.
- Amazon Web Services (AWS) Simple Queue Service (SQS)
- Apache ActiveMQ
- Apache Kafka
- Apache Qpid
- Cloverleaf (E-Novation Lifeline)
- Comverse Message Broker (Comverse Technology)
- Eclipse Mosquitto MQTT Broker (Eclipse Foundation)
- Enduro/X Transactional Message Queue (TMQ)
- Financial Fusion Message Broker (Sybase)
- Fuse Message Broker (enterprise ActiveMQ)
- HornetQ (Red Hat)
- IBM App Connect
- IBM MQ
- JBoss Messaging (JBoss)
- Microsoft Azure Service Bus (Microsoft)
- Microsoft BizTalk Server (Microsoft)
- NATS (MIT Open Source License, written in Go)
- Open Message Queue
- Oracle Message Broker (Oracle Corporation)
- RabbitMQ (Mozilla Public License, written in Erlang)
- Redis An open source, in-memory data structure store, used as a database, cache and message broker.
- SAP PI (SAP AG)
- Solace PubSub+
- Spread Toolkit
- Tarantool, a NoSQL database, with a set of stored procedures for message queues
- TIBCO Enterprise Message Service
- WSO2 Message Broker
You may like also: How To Create Secure MQTT Broker
RabbitMQ is the most widely deployed open source message broker software (sometimes called message-oriented middleware) that originally implemented the Advanced Message Queuing Protocol (AMQP) and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol (STOMP), Message Queuing Telemetry Transport (MQTT), and other protocols.
RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.
The RabbitMQ server program is written in the Erlang programming language and is built on the Open Telecom Platform framework for clustering and failover. Client libraries to interface with the broker are available for all major programming languages. RabbitMQ runs on many operating systems and cloud environments, and provides a wide range of developer tools for most popular languages.
Apache Kafka is a distributed publish-subscribe messaging system and a robust queue that can handle a high volume of data and enables you to pass messages from one end-point to another, written in Scala and Java. The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds. Its storage layer is essentially a “massively scalable pub/sub message queue designed as a distributed transaction log,” making it highly valuable for enterprise infrastructures to process streaming data. Kafka is suitable for both offline and online message consumption. Kafka messages are persisted on the disk and replicated within the cluster to prevent data loss. Kafka is built on top of the ZooKeeper synchronization service. It integrates very well with Apache Storm and Spark for real-time streaming data analysis.
Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 3.1 and 3.1.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers.
The MQTT protocol provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for Internet of Things messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers.
The Mosquitto project also provides a C library for implementing MQTT clients, and the very popular mosquitto_pub and mosquitto_sub command line MQTT clients.
Mosquitto is one of the most famous MQTT broker. Its very easy to install and easy to use. After reading many articles and answers, following are the steps I found to make it work.
You may like also:
- How To Create Secure MQTT Broker
- Setting up Authentication in Mosquitto MQTT Broker
- MQTTBox : Intro and Installation
- Introduction of Socket.IO – A real-time web applications
- MQTT Public Brokers List