NEW
An open-source message broker implementing AMQP that routes, queues, and delivers messages between producers and consumers.
DESCRIPTION
RabbitMQ is a lightweight, open-source broker supporting AMQP and additional protocols via plugins. It decouples producers and consumers, offering exchanges, bindings, and routing keys to flexibly deliver messages. Features include durability, acknowledgements, dead-lettering, and priority queues. It powers asynchronous communication, workload distribution, and event-driven architectures. RabbitMQ is widely deployed on-premises and in clouds, with managed options such as Amazon MQ for RabbitMQ and CloudAMQP.
ALTERNATIVE DEFINITIONS
RabbitMQ
RabbitMQ is a message broker: it accepts and forwards messages. It speaks multiple protocols such as AMQP 0-9-1, STOMP, and MQTT.
Official definition emphasizing broker role and multi-protocol support.
IBM
RabbitMQ is an open source message broker software that implements the Advanced Message Queuing Protocol (AMQP) and supports other protocols for distributed systems.
Highlights AMQP implementation and distributed systems usage.
CloudAMQP
RabbitMQ is an open-source message broker that enables applications to communicate by sending and receiving messages through queues and exchanges using AMQP.
Educational orientation focusing on queues, exchanges, and AMQP.
RELATED TERMS
AMQP Queue Publish–Subscribe Routing Key Exchange Durable Queues Dead Letter Queue Acknowledgement Idempotency Backpressure
COMPETING TERMS
Apache Kafka ActiveMQ
RELATIONS
- Conforms to: AMQP
KNOWLEDGE AREAS
Real-time & Streaming Data Data Integration & Interoperability Infrastructure Software Engineering
TARGET AUDIENCE
Software Developer Data Engineer DevOps Engineer Cloud Architect
EXTERNAL SOURCES
- Wikipedia - RabbitMQ
- RabbitMQ - Official documentation and guides
- AMQP Working Group - AMQP specifications and resources
- Amazon Web Services - Managed RabbitMQ service docs
TOP QUESTIONS
When should I use RabbitMQ instead of Kafka?
Use RabbitMQ for complex routing, request–reply, and per-message acknowledgements; use Kafka for high-throughput event streams and log-based processing.
Category: Comparison
What are exchanges in RabbitMQ?
Exchanges receive messages from producers and route them to queues based on type and bindings.
Category: Basics
How do I ensure message durability in RabbitMQ?
Use durable exchanges/queues and persistent messages; ensure publisher confirms and consumer acknowledgements.
Category: BestPractice
What causes message loss in RabbitMQ?
Non-durable queues, transient messages, disabled confirms, or auto-ack without processing safeguards can cause loss.
Category: Risks
How does dead-lettering work in RabbitMQ?
Messages that expire or are rejected can be routed to a dead letter exchange for later inspection or reprocessing.
Category: Operations
How can I scale RabbitMQ consumers?
Increase consumer instances, use prefetch for backpressure, and shard workloads via routing keys or multiple queues.
Category: Scaling
What is a common mistake configuring RabbitMQ?
Using auto-delete or non-durable settings unintentionally, leading to lost queues and messages after restarts.
Category: Mistakes
How to monitor RabbitMQ effectively?
Track queue depth, unacked messages, connection churn, and throughput; integrate with Prometheus and dashboards.
Category: Observability
Does RabbitMQ support exactly-once delivery?
No; implement idempotent consumers and deduplication for at-least-once semantics.
Category: Clarification