EntropediaEntropedia

Rabbitmq

Rabbitmq
Type

Open source message-broker

License

Mozilla Public License 2.0

Use cases

Distributed systems • Microservices • Versatile messaging

Written in

Erlang

Architecture

Plug-in

Operating systems

Linux • macOS • Windows

Protocols supported

AMQP • STOMP • MQTT • Web-MQ • WebStomp

Rabbitmq

RabbitMQ is a widely-used open source message broker built to efficiently route messages between applications. It is written in the Erlang programming language and is based on the Advanced Message Queuing Protocol (AMQP).

RabbitMQ is known for its flexibility, scalability, and high performance, making it a popular choice for building distributed systems, implementing microservice architectures, and processing asynchronous tasks. It supports multiple protocols including AMQP, MQTT, and STOMP, broadening the range of compatible technologies and applications.

Features

Plug-in architecture

To enhance its versatility, RabbitMQ employs a [plug-in][plug-in] architecture that allows developers to extend and modify its functionality. This feature enables developers to customize and optimize RabbitMQ to meet specific requirements or integrate with other technologies.

Dynamic routing

RabbitMQ utilizes a system of "exchanges" and "bindings" to route messages to their intended recipients. Exchanges are responsible for receiving messages from producers and distributing them to queues based on message attributes, while bindings define the relationships between exchanges and queues. This dynamic routing mechanism enables complex routing patterns and rule-based message handling.

High availability

In order to ensure system resilience and data integrity, RabbitMQ offers several features for high availability, including clustering, HAProxy, and data persistence. These features enable RabbitMQ to remain operational even during [node][node] failures and network partitions, ensuring continuous message delivery.

Monitoring and management

RabbitMQ provides a comprehensive set of [monitoring][monitoring], [alerting][alerting], and management tools for tracking system performance and diagnosing issues. It also supports integrations with third-party tools such as Prometheus and Grafana for advanced monitoring and visualization capabilities.