Load balancing
Load balancing is een techniek bij computernetwerken om het werk te verdelen tussen verschillende computers. Men spreekt ook over load balancing bij het verdelen van het werk tussen processen, harde schijven en andere hulpbronnen. Op deze manier kunnen deze optimaal gebruikt worden en de benodigde verwerkingstijd verminderd.
De techniek wordt vooral bij servers gebruikt om zo de betrouwbaarheid te verhogen, of een groter aanbod aan te kunnen. Men kan zonder problemen werk uitvoeren aan een machine of verder blijven werken bij uitval van één (of meerdere) machines. Een load balancer is hierbij een virtuele server verbonden met de fysieke servers, waarbij de verzoeken gelijkmatig over alle beschikbare servers worden verdeeld. De load balancer controleert continu de belasting van alle servers en regelt zo het aantal verzoeken per server.
In Service-Oriented Architectuur omgevingen worden load balancers gebruikt om een webservice op te schalen. Door voor de fysieke webservices een load balancer te plaatsen, kan de logische applicatie een groter aanbod aan zonder overspoeld te worden.
In een aantal gevallen kan load balancing ook gebruikt worden om het crashen van een server op te vangen door alle gebruikers over de andere servers te verdelen. Dit is alleen toepasbaar wanneer er aan de serverzijde geen status van de gebruiker wordt bewaard. Wanneer aan de serverzijde wel status wordt bijgehouden, moeten opeenvolgende verzoeken van een gebruiker steeds naar dezelfde server gestuurd worden. Als deze crasht, zal deze data verloren gaan en zal de gebruiker opnieuw in moeten loggen op een andere server. Zo'n soort sessie wordt ook wel een sticky sessie genoemd.