-
-
Notifications
You must be signed in to change notification settings - Fork 535
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support horizontal scalability #57
Comments
@endel Is there any update on this? I would really like to see this implemented! |
@endel Me too, Please add this feature as it is very important in production server! |
I'm starting to experiment with horizontal scalability on branch 0.9.0. I'll update you guys as soon as I have some tangible progress. |
So, the plan for supporting horizontal scalability is basically allowing connections from other processes/servers to communicate with the process which the room actually lives in. Previously, only the clients connected to the right process (which the room was spawned) could communicate with that room. Now, client connections could live in any process and communicate with the process which the room is living in through Redis PUB/SUB. I'm still not sure this will scale properly since the communication through PUB/SUB will increase considerably, even when it's not really necessary. An extra delay of a couple milliseconds will come to play here. By removing the The good thing about I'd like to have an adapter for memshared as well (endel/memshared#10), so you wouldn't need to have a Redis instance running if you have a single server with multiple processes. More details coming soon! |
Redis support implemented on #135 memshared has been implemented too, but still on experimental stage. |
Supporting vertical scalability (#43) introduced an architectural change that can be evolved to supporting horizontal scalability in the future.
Match-making should consider sessions living on different servers/processes to determine where the user should connect to.
Communication between servers/processes can be achieved by using either Redis or another message broker such as uTT
In order to achieve horizontal scalability, supporting PM2 for managing processes would be great to have first (#56)
The text was updated successfully, but these errors were encountered: