# Ubuntu/Debian
sudo apt-get install rabbitmq-server
# RHEL/CentOS/Fedora
sudo dnf install rabbitmq-server
The Open Source
Message Broker
Built for Scale
RabbitMQ routes millions of messages per second across finance, e‑commerce, IoT, and cloud‑native applications. Battle‑tested since 2007 — trusted by NASA, VMware, and thousands of engineering teams worldwide.
Quick Install
Get RabbitMQ running in minutes on your platform
brew install rabbitmq
brew services start rabbitmq
choco install rabbitmq
# or download .exe installer
Docker — Fastest Way to Try RabbitMQ
docker run -it --rm --name rabbitmq \
-p 5672:5672 -p 15672:15672 \
rabbitmq:3.13-management
Then open http://localhost:15672 — login with guest / guest
Why RabbitMQ?
A proven message broker trusted in production by organizations of every size
RabbitMQ implements the Advanced Message Queuing Protocol (AMQP 0-9-1), a widely-adopted open standard for message-oriented middleware. This ensures interoperability with hundreds of client libraries across every major programming language.
Beyond AMQP, RabbitMQ supports MQTT 3.1 and 5.0 for IoT devices, STOMP for web clients and legacy systems, and HTTP via the management API. One broker, multiple messaging paradigms.
Deploy RabbitMQ as a multi-node cluster for fault tolerance and horizontal scalability. Quorum queues provide strong consistency guarantees using the Raft consensus algorithm, eliminating split-brain scenarios.
The rabbitmq_management plugin provides a powerful web-based dashboard for monitoring queues, exchanges, connections, and message rates. Full REST API included for programmatic access and automation.
Extend RabbitMQ with official plugins for Shovel (cross-broker message transfer), Federation (multi-datacenter replication), delayed message delivery, and dozens of community-built extensions.
Official and community client libraries are available for Python, Java, JavaScript/Node.js, Go, Ruby, PHP, .NET/C#, Rust, Kotlin, Erlang, and more. The AMQP standard means any AMQP-compliant client works out of the box.
Client Libraries for Every Language
Frequently Asked Questions
RabbitMQ is an open source message broker used to decouple application components by routing messages between producers and consumers. Common use cases include: task and job queues for background processing (for example, sending emails or resizing images without blocking the main application), event-driven microservices communication where services emit and react to events without tight coupling, pub/sub notifications delivered to multiple subscribers simultaneously, and integrating heterogeneous systems that speak different protocols or are written in different programming languages. Its flexible routing model — built around exchanges, queues, and bindings — makes it suitable for both simple point-to-point messaging and complex fan-out or topic-based delivery patterns.
Yes. RabbitMQ is released under the Mozilla Public License 2.0 (MPL 2.0), which is a permissive open source license that allows you to use it freely in commercial applications. You can download, run, modify, and distribute RabbitMQ at no cost. VMware/Broadcom offers a commercially supported distribution called VMware RabbitMQ with additional tooling, enterprise plugins, and service-level agreements — but this is optional. The community edition available at rabbitmq.com is fully featured and used in production at thousands of companies without any commercial license required.
RabbitMQ uses several ports depending on the protocol and feature:
- 5672 — AMQP 0-9-1 (plain TCP, default for most client connections)
- 5671 — AMQP 0-9-1 over TLS/SSL (encrypted client connections)
- 15672 — Management UI and HTTP API (plain HTTP)
- 15671 — Management UI and HTTP API over HTTPS
- 1883 — MQTT (plain, requires rabbitmq_mqtt plugin)
- 8883 — MQTT over TLS
- 61613 — STOMP (requires rabbitmq_stomp plugin)
- 25672 — Erlang distribution / inter-node communication (not exposed externally)
- 4369 — EPMD (Erlang Port Mapper Daemon, used for node discovery)
Ensure your firewall allows the relevant ports. For internet-facing deployments, always use the TLS variants.
The default username is guest and the default password is guest. This account is deliberately restricted to localhost connections only as a security measure — attempting to connect remotely with the guest account will be refused. For any non-local deployment, you must create a dedicated user account:
rabbitmqctl add_user myuser strongpassword
rabbitmqctl set_user_tags myuser administrator
rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
After creating your administrative user, delete or disable the guest account in production environments:
rabbitmqctl delete_user guest
RabbitMQ 3.13.x requires Erlang/OTP 26.x or 25.x. The exact Erlang requirement varies by RabbitMQ release, and mismatched Erlang versions are one of the most common causes of RabbitMQ startup failures or upgrade issues. Always consult the official Erlang compatibility matrix before installing or upgrading. Key rules to follow:
- Install Erlang from the official Erlang Solutions repository or the RabbitMQ-provided packages for the most reliable version matching.
- When upgrading RabbitMQ, check whether the new version requires a newer Erlang. Upgrade Erlang first, then RabbitMQ.
- Avoid using the Erlang version shipped by your Linux distribution's default repositories — these are often outdated.
See our downloads page for a full RabbitMQ-to-Erlang compatibility matrix.
RabbitMQ and Apache Kafka are both popular messaging technologies but are designed for different use cases:
- RabbitMQ is a traditional message broker implementing a smart-broker/dumb-consumer model. It excels at complex routing with exchanges and binding keys, per-message acknowledgment and redelivery, low-latency delivery to multiple consumers, and short message retention (messages are deleted after acknowledgment).
- Apache Kafka is an event streaming platform built around durable, append-only logs. It is optimized for very high-throughput sequential writes, long message retention and replay, consumer-group offset management, and event sourcing patterns.
Use RabbitMQ when you need flexible routing logic, task queues with retries, or integration between heterogeneous systems. Use Kafka for high-volume event streams, audit logs, real-time analytics pipelines, or anywhere you need consumers to replay historical events. See our full comparison guide for a detailed breakdown.
Yes. RabbitMQ supports multi-node clustering natively. In a cluster, all nodes share exchange and queue metadata, allowing producers and consumers to connect to any node. Key points about RabbitMQ clustering:
- Classic queues store data on the single node where they were declared. If that node fails, the queue is unavailable until the node recovers.
- Quorum queues replicate queue data across a configurable number of nodes using the Raft consensus algorithm, providing strong data safety and automatic leader election. These are the recommended queue type for production high-availability deployments.
- Kubernetes Cluster Operator — RabbitMQ provides an official Kubernetes operator that automates cluster provisioning, scaling, and rolling upgrades on Kubernetes.
For cloud deployments, nodes should be distributed across availability zones. All cluster nodes must run the same version of RabbitMQ and Erlang.
The rabbitmq_management plugin adds two capabilities to RabbitMQ: a web-based management dashboard and a full HTTP REST API. Once enabled, the dashboard is accessible at http://<your-host>:15672 and provides:
- Real-time charts for message rates, publish/consume throughput, and connection counts
- Queue browser — inspect queue depth, message details, and consumers
- Exchange and binding management
- User and virtual host administration
- Node health and memory/disk alarm status
Enable it with a single command:
rabbitmq-plugins enable rabbitmq_management
The HTTP API at /api/ mirrors all UI functionality, enabling automation, monitoring integrations (Prometheus, Grafana), and scripted queue management. The rabbitmq:3.13-management Docker image ships with this plugin pre-enabled.
Ready to Get Started?
Download RabbitMQ 3.13.7 — free, open source, production-ready.