Type | Open source message-broker |
License | |
Use cases | Distributed systems • Microservices • Versatile messaging |
Written in | |
Architecture | Plug-in |
Operating systems | Linux • macOS • Windows |
Protocols supported | AMQP • STOMP • MQTT • Web-MQ • WebStomp |
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.
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.
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.
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.
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.