Concerns About RabbitMQ Storage Capacity for Large Volumes of Persistent Messages #13112
-
Community Support Policy
RabbitMQ version used4.0.4 Erlang version used26.2.x Operating system (distribution) usedLinux based How is RabbitMQ deployed?Community Docker image rabbitmq-diagnostics status outputSee https://www.rabbitmq.com/docs/cli to learn how to use rabbitmq-diagnostics
Logs from node 1 (with sensitive values edited out)See https://www.rabbitmq.com/docs/logging to learn how to collect logs
Logs from node 2 (if applicable, with sensitive values edited out)See https://www.rabbitmq.com/docs/logging to learn how to collect logs
Logs from node 3 (if applicable, with sensitive values edited out)See https://www.rabbitmq.com/docs/logging to learn how to collect logs
rabbitmq.confSee https://www.rabbitmq.com/docs/configure#config-location to learn how to find rabbitmq.conf file location
Steps to deploy RabbitMQ cluster. Steps to reproduce the behavior in question. advanced.configSee https://www.rabbitmq.com/docs/configure#config-location to learn how to find advanced.config file location
Application code# PASTE CODE HERE, BETWEEN BACKTICKS Kubernetes deployment file# Relevant parts of K8S deployment that demonstrate how RabbitMQ is deployed
# PASTE YAML HERE, BETWEEN BACKTICKS What problem are you trying to solve?I am planning to use RabbitMQ to handle a large volume of data, exceeding many GB's, and ensuring data durability is critical to my use case. I have some concerns about RabbitMQ's storage capacity and its ability to handle this volume effectively while maintaining performance. Questions
Thank you in advance for your help! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 4 replies
-
Some key questions that immediately come to mind:
In general: Quorum queues offer the highest data safety guarantees (see https://www.rabbitmq.com/blog/2025/01/17/how-are-the-messages-stored) but are not the best suited for large messages or very long backlogs of messages (it's impossible to tell where the thresholds are exactly - it depends on the message size, queue length, hardware, replication factor and so on) Streams are better suited for large messages and long backlogs. |
Beta Was this translation helpful? Give feedback.
GBs of data across many QQs should not be a problem in general. Keep in mind that QQs keep some per-message metadata in memory so the more messages you store, the more RAM will be used (again, it's metadata only, not messages themselves, as hopefully explained in the aforementioned blog post).
This however introduces another dimension - how many quorum queues? If they are relatively idle, a few thousands should be fine, but if you have tens of thousands of queues in mind - that would be a challenge.
You can use federation with QQs, but it sounds like shovel is more what you need. Or just develop your own app - there's nothing special about shovel - it's just an AMQP client that consumes m…