We have currently using a service bus in Azure and for various reasons, we are switching to RabbitMQ. Under heavy load, and when specific tasks on backend are having problem, one of our queues can have up to 1 million messages waiting to be processed.
RabbitMQ can have a maximum of 50 000 messages per queue. The question is how can we design the rabbitMQ infrastructure to continue to work when messages are temporarily accumulating?
Note: we want to host our RabbitMQ server in a docker image inside a kubernetes cluster. we imagine an exchange that would load balance mesages between queues in nodes behind. But what is unclear to us is how to dynamically add new queues on demand if we detect that queues are getting full.