Overview
RabbitMQ is the most widely deployed open-source message broker. Configuring rabbitmq.conf correctly is essential for preventing out-of-memory crashes, securing the Management UI, and ensuring reliable message delivery across clustered nodes.
Resource Limits
Configure memory watermarks and disk free limits to prevent broker crashes under heavy load.
Clustering
Set up peer discovery backends for Kubernetes, AWS, or static configs, and handle network partitions.
Management UI
Secure the HTTP API and Management Dashboard, and load pre-configured definitions.json files.
Production Checklist
- Delete the Guest User: In production, immediately delete the default 'guest' user and create dedicated users with strict virtual host (vhost) permissions.
- Enable Prometheus: Always enable the
rabbitmq_prometheusplugin to export critical metrics (queue depth, memory, file descriptors) to Grafana. - Use TLS for AMQP: If clients connect over the internet, enable TLS on port 5671 and disable plaintext AMQP on port 5672.
- Backup Definitions: Use the
management.load_definitionsfeature to treat your exchanges, queues, and bindings as Infrastructure as Code.