RabbitMQ
Overview
RabbitMQ is a widely used open-source message broker known for its reliability, flexibility, and support for multiple messaging protocols. It is suitable for building scalable, decoupled applications that require robust message queuing.
You can deploy RabbitMQ in two configurations:
- Single-Node: suitable for development or workloads that do not require high availability.
- High-Availability Cluster: provides higher resilience and is intended for production workloads.
Why Use Managed RabbitMQ?
A managed RabbitMQ instance provides preconfigured, production-ready broker without requiring you to operate or maintain the underlying cluster.
Unlike serverless containers, which are stateless, managed RabbitMQ clusters are designed to remain continuously online. This ensures stable message delivery, durable queues, and consistent performance for workloads that depend on persistent messaging.
Storage Performance Considerations
RabbitMQ performance is heavily influenced by the latency and throughput of the underlying storage.
Nexaa's general-purpose volumes are automatically replicated for durability, but this replication layer introduces additional latency. For this reason, managed RabbitMQ uses a different storage class that is optimized for lower latency and higher throughput.
Using faster, non-replicated storage significantly improves queue performance and allows RabbitMQ to process messages at higher rates.
This storage design is the primary reason why RabbitMQ cannot run efficiently on standard Nexaa volumes.
Supported Versions
- RabbitMQ 3.13
What's Included
When you deploy RabbitMQ through Nexaa, you receive either a Single-Node or High-Availability setup with the following components:
RabbitMQ Management Console
A web-based interface for administering and monitoring your RabbitMQ instance. You can inspect queues, exchanges, bindings, and node status directly in the console.
- TLS is enabled by default.
- No additional configuration is required to secure access.
- The management console is publicly accessible by default (0.0.0.0/0, ::/0).
You should restrict access by configuring firewall rules to allow only trusted IPs.
Admin User
A single administrative user is created during deployment. Credentials are provided through the Nexaa portal.
Important notes regarding the admin user:
- Removing the admin user in the management console will lock you out.
Nexaa cannot restore deleted users, and the user will not be recreated automatically.
- If you change the admin password in RabbitMQ, it will not be synced back to the Nexaa portal.
You are responsible for retaining the updated password.
- The default credentials follow Nexaa’s strong password policy and are stored securely in our Vault system.
Recommendations
Use Quorum Queues
For most workloads, we recommend using Quorum Queues instead of the default classic queues.
Quorum queues are designed for replication and durability, making them more resilient in distributed environments. They provide predictable failover behavior and are the preferred choice for production use.
Use Dedicated Users for Applications
Create dedicated RabbitMQ users for each application or service that connects to your cluster.
This offers several benefits:
- The admin user has broad permissions and should not be used by applications.
- Dedicated users improve security by limiting access to only what the application needs.
- They make it easier to monitor usage patterns and identify which application is producing or consuming messages.