Wat is een load balancer
Een load balancer is een systeem dat inkomend internetverkeer verdeelt over meerdere servers. Je kunt het zien als een digitale verkeersregelaar tussen gebruikers en de achterliggende infrastructuur. In plaats van dat alle aanvragen naar één server gaan, zorgt de load balancer ervoor dat de belasting netjes wordt verspreid. Dit maakt een website of online dienst sneller, betrouwbaarder en beter schaalbaar bij groeiende aantallen bezoekers.
Waarom een load balancer nodig is
Zonder load balancer zou al het verkeer op één server binnenkomen. Die server vormt dan al snel een zwakke schakel. Bij piekbelasting kan de server trager worden of zelfs onbereikbaar raken. Door meerdere servers achter een load balancer te plaatsen, kan de totale capaciteit eenvoudig worden uitgebreid en blijft de dienst vaak beschikbaar, zelfs als één van de servers een probleem heeft.
Hoe een load balancer internetverkeer verdeelt
De load balancer zit tussen de client en de servers. Gebruikers maken verbinding met het adres van de load balancer, die vervolgens bepaalt naar welke server de aanvraag wordt doorgestuurd. Dit gebeurt op basis van een verdeelalgoritme en de actuele status van de servers. Voor de gebruiker lijkt het alsof er met één systeem wordt gecommuniceerd, terwijl er achter de schermen meerdere servers samenwerken.
Veelgebruikte verdeelalgoritmen
Een veelgebruikt algoritme is round robin waarbij de load balancer aanvragen om en om naar de beschikbare servers stuurt. Bij least connections kijkt de load balancer welke server op dat moment de minste actieve verbindingen heeft en stuurt daar nieuwe verzoeken heen. Er zijn ook methoden waarbij bepaalde servers een zwaarder gewicht krijgen als zij meer capaciteit hebben, zodat zij automatisch meer verkeer verwerken.
Controle en gezondheid van servers
Een goede load balancer houdt in de gaten of de achterliggende servers nog goed functioneren. Dit gebeurt met health checks. De load balancer stuurt regelmatig testverzoeken naar elke server om te controleren of deze nog reageert zoals verwacht. Als een server niet goed reageert, wordt deze tijdelijk uit de rotatie gehaald, zodat verkeer alleen naar gezonde servers gaat. Dit verhoogt de beschikbaarheid van de dienst zonder dat gebruikers handmatig hoeven over te stappen.
Sessiebeheer en persistente verbindingen
Bij webapplicaties is het soms belangrijk dat een gebruiker steeds bij dezelfde server terugkomt. Dit speelt vooral bij sessies waarin bijvoorbeeld winkelwagens, ingelogde accounts of specifieke gebruikersdata tijdelijk op de server worden opgeslagen. De load balancer kan dan session persistence toepassen. Op basis van een cookie of het ip adres van de gebruiker wordt verkeer van dezelfde gebruiker consequent naar dezelfde server gestuurd, zodat de ervaring stabiel blijft.
Verschillende soorten load balancers
Er zijn grofweg twee soorten load balancers. Bij layer 4 varianten wordt verkeer verdeeld op basis van gegevens uit het transportniveau, zoals ip adres en poort. Deze werken snel en efficiënt, maar hebben beperkte kennis van de inhoud van het verkeer. Bij layer 7 varianten wordt gekeken naar gegevens op applicatieniveau, zoals http headers en urls. Hierdoor kan verkeer op inhoud worden gestuurd, bijvoorbeeld om bepaalde paden naar specifieke servers of diensten te leiden.
Voordelen voor prestaties en veiligheid
Naast het verdelen van verkeer kan een load balancer ook helpen bij caching, compressie en soms zelfs basisbeveiliging. Door veelgevraagde inhoud te cachen, worden servers minder belast en laadt content sneller. Sommige oplossingen bieden bescherming tegen eenvoudige vormen van misbruik door afwijkende verkeerspatronen te detecteren en te beperken. Zo draagt de load balancer bij aan zowel snelheid als stabiliteit van de online dienst.