Hi,
First of all, Thanks for the great tool - RabbitMQ!!!
We use RabbitMQ in our application and it is the backbone for your application. Our application composes of 12 micro services and each service communicate with each other using the RabbitMQ.
Currently, we have reached a situation, where our performance gets hindered because of RabbitMQ (correct me, if I am wrong).
Let me first give you the context, we have 30-40 queues in the topic exchange and services will be listening to the corresponding queue. There is one component which orchestrates where all the message should go to. All the other component will be listening to a queue and once the message is there, it will process the message and put its response to queue of the orchestrator. The orchestrator will find the next queue and publish the message in the next queue.
The problem here, since all the components will be publishing its response to the orchestrator queue, the queue is getting flooded and the state of the queue is changed to "Flow". We tried tuning the RabbitMQ configuration, but we are still facing the issue.
Following are tuning we did,
- Increased the consumer count to 15 (this is because, we run our application in 16 core machine)
- Increased the prefetch count to 100
Can you please tell us, if RabbitMQ is slowing down the message rate when it is in flow state? If so, can you please suggest a way to overcome that problem?
Any other tip is also appreciated!!!
Thanks in advance!!!!
--
Regards
Thirunavukkarasu.R