3 ms·
I don't understand why the author says server-side load balancing is expensive or must be done with expensive hardware. Yes, you can use hardware accelerated bo
by scurvy 11y ago
I don't understand why the author says server-side load balancing is expensive or must be done with expensive hardware. Yes, you can use hardware accelerated boxes to speed up things like SSL termination and HTTP compression, but they're not required. Two alternatives:
1) IPVS with DSR. You'll get about 1M PPS through each "load balancer". Regular, cheap Linux boxes do well here. You can get fancier here, but a pair of these would scale most games just getting started.
2) Run a dispatch server. This is what we used in MSN Messenger. I'm not going to go too deep into the details, but the gist of it is that we had two groups of user facing servers: connection servers (CS) and dispatch servers (DP). Connection servers is where your client TCP connection terminated and was responsible for updates to your client. The DP server merely "dispatched" you to a CS upon initial client connect. The DP had no role other than seeing which CS servers were alive and sending you to one of the least loaded. The CS servers advertised their existence and load on a multicast address. Yeah, we had a hardware load balancer in front of the DP servers, but we very easily could have used a software implementation. We were part of Hotmail so there was loads of networking hardware to use.
Client -> Cisco CSM -> DP server -> redirect to CS -> CS
After that, the CSM and DP server were out of the loop and everything went to/from the CS directly. Might not be super elegant, but it worked really well.