To answer your question, we need to understand if you need a volume or an answer, but it is difficult to get both at the same time.
Layer 7 load balancing is application-level load balancing, so the contents of the network packet data must be redirected to the endpoint. You can achieve volume (more users) by implementing routing at the application level, service level, or kernel level.
Scalability. I assume that you are running out of memory, processor resources, and network bandwidth.
Application Level - Your application logic receives the application package and routes accordingly.
The level of service - your system infrastructure (any front-end service) receives the packet and through the module - performs routing (think about a custom apache module, even network driver modules - for example, creating a network filter) / p>
Kernel level β Perform routing at the network packet level.
The closer you get to metal, the better your answer will be. I suggest using a dedicated linux server to perform routing - go to your native, not virtual. Use multiple or combined network adapters for the WAN and a dedicated adapter for each endpoint (one + wan, one for each connected application server).
If the response time is important, you need a kernel / supervisor solution, it will save you a few context switches, but keep in mind that you need to limit flights at any cost and better serve less, more machines and your scalability will always be limited. There is a risk of using KTCPVS, it is quite old and is not actively updated. If you judge that it works fine for you, consider writing something that looks like a surge protector while it is running in system state.
If loudness is important, but response time is secondary, implement a built-in high-speed socket switch, built-in C ++, working in a problem / user state. This is easiest to maintain and will offer better scalability.
You will need to create prototypes to find out what works best for your needs.
Final thoughts -
Before you do any of the above, make sure that you have optimized your game design. You can know most of this, I list it here for everyone.
(a) Messages should fit comfortably within a single network packet, less than 1,500 bytes for most home routers.
(b) Try to set the routing logic in your game client instead of your servers. Simply loading a small table with zones and IP addresses for the client will allow you to abandon all of the above.
(c) Try to limit the visibility of the zone to customers, they should only know about their zones and adjacent zones (if you implement point b above)
Hope this helps, sorry, I cannot be more specific regarding KTCPVS.