Reputation: 645
I develop an application where we need to handle 160k concurrent users which are connected to the backend via a websocket
connection.
We decided to use the spring websocket
implementation and RabbitMQ
as the message broker.
In our application every user needs to subscribe to its user queue /exchange/amq.direct/update
as well as to another queue where also other users can potential subscribe to /topic/someUniqueName
.
In our first performance test we did the naive approach where every user subscribes to two new queues.
When running the test RabbitMQ
dies silently when around 800 users are connected at the same time, so around 1600 queues are active (See the graph of all RabbitMQ objects here).
I read though that you should be careful opening many connections to RabbitMQ.
Now I wonder if the approach that is anticipated by Spring Websocket with opening one queue per user is a conceptional problem for systems with high load or if there is another error in my system.
Upvotes: 0
Views: 456
Reputation: 645
I did find the issue. I actually misconfigured the RabbitMQ service and just gave it a 1024 file descriptor limit. Increasing it solved the issue.
Upvotes: 0
Reputation: 785
Limiting factors for RabbitMQ are usually:
Upvotes: 1