Door gebruik te maken van Load Balancing kan de servertoegang gelijkmatig worden verdeeld over verschillende hardwarebronnen via een technische instantie die Load Balancer wordt genoemd. Dit zorgt voor stabiele toegangssnelheden, wat cruciaal is voor het genereren van leads en klanten.

Wat is load balancing?

Load balancing is vooral populair in servertechnologie en beschrijft een methode waarbij verzoeken op de achtergrond worden verdeeld over verschillende servers zonder dat gebruikers dit merken. De load balancer die hiervoor wordt gebruikt, kan worden geïmplementeerd als hardware of software. Deze wijst meerdere servers toe aan een domein zonder adresconflicten te veroorzaken en is toegankelijk onder het openbare domein.

De ondergeschikte webservers worden benoemd met de domeintoevoegingen www1, www2, www3, enz. Hierdoor kan load balancing een website beschikbaar maken onder dezelfde URL, ook al staan er meerdere servers achter. Dit voorkomt overbelasting van de server, omdat externe verzoeken worden verdeeld over verschillende fysieke machines binnen het cluster. Gebruikers merken hier over het algemeen niets van, omdat de verdeling van verzoeken op basis van complexe algoritmen op de achtergrond plaatsvindt.

Load balancing kan ook een rol spelen buiten webservers, bijvoorbeeld bij computers die met meerdere processors werken. In dergelijke gevallen zorgt de load balancer ervoor dat de belasting gelijkmatig over de verschillende processors wordt verdeeld om meer rekenkracht te genereren. Load balancers zijn ook gewild bij het gebruik van containersoftware zoals Kubernetes. Hier zorgen ze ervoor dat de werklast efficiënt over verschillende pods wordt verdeeld.

Hoe werkt load balancing?

Verzoeken aan een webserver, bijvoorbeeld in de vorm van paginaweergaven, worden eerst uitgevoerd op de load balancer. Deze neemt vervolgens de verdeling van de belasting over door de toegangsverzoeken door te sturen naar verschillende servers. De load balancer zelf kan worden geïmplementeerd als hardware of software, maar het principe blijft hetzelfde: een verzoek komt bij de load balancer terecht en, afhankelijk van de gebruikte methode, stuurt het apparaat of de software de gegevens door naar de relevante server.

De technische basis is de DNS-procedure: gebruikers hebben alleen via een URL toegang tot een website. Deze wordt met behulp van het DNS omgezet in een IP-adres, dat vervolgens naar de load balancer verwijst. Idealiter merken gebruikers niets van dit proces.

Afbeelding: Diagram of how load balancing works
A load balancer distributes the load of client accesses over the internet or web to various servers.

Wat zijn de voordelen van evenwichtige load balancing?

De drie belangrijkste voordelen van een goed geïmplementeerde load balancer zijn:

  • Geoptimaliseerde toegangstijden: Door het verkeer over meerdere servers te verdelen, kunnen de toegangstijden worden verkort, zelfs wanneer er veel verzoeken tegelijkertijd worden gedaan.
  • Hogere fouttolerantie: een load balancer verhoogt de fouttolerantie omdat het verkeer van een trage server automatisch wordt omgeleid naar andere servers in het cluster. Als een server niet beschikbaar is, blijft de gehoste website toegankelijk.
  • Vereenvoudigd systeemonderhoud: Load balancing ondersteunt het onderhoud van een serversysteem in hoge mate. Configuraties en updates kunnen worden uitgevoerd terwijl de servers draaien, zonder merkbaar prestatieverlies. De load balancer detecteert onderhoudsstatussen en leidt verzoeken dienovereenkomstig om.

Wat zijn de verschillende soorten load balancing?

Hoe inkomende verzoeken worden verdeeld, hangt af van de keuze van het algoritme. Populaire algoritmen voor load balancing zijn: Round Robin, Weighted Round Robin, Least Connections en Weighted Least Connections.

Ronde Robin

Round Robin beschrijft een procedure waarbij inkomende serververzoeken door de load balancer in een wachtrij worden verwerkt en over een reeks servers worden verdeeld. Elk nieuw verzoek wordt toegewezen aan de volgende server in de reeks. Hierdoor kunnen toegangsverzoeken gelijkmatig over het load balancing-cluster worden verdeeld. Ongeacht de urgentie van het verzoek of de ernst van de serverbelasting, behandelt Round Robin alle processen op dezelfde manier. Load balancers die werken volgens het round-robin-principe zijn vooral geschikt voor omgevingen waar alle instanties ongeveer dezelfde resources beschikbaar hebben.

Gewogen Round Robin

De zwakke punten van het klassieke round-robin-algoritme in heterogene serverclusters kunnen worden gecompenseerd met een gewogen round-robin-verdeling. Inkomende verzoeken worden verdeeld op basis van de statische weging van elke server. Deze weging wordt vooraf door de beheerder bepaald.

De krachtigste server kan bijvoorbeeld de waarde ‘100’ krijgen, terwijl minder efficiënte servers de waarde ‘50’ krijgen. In een dergelijke opstelling zou de server met een gewicht van ‘100’ twee verzoeken per ronde ontvangen van de load balancer, terwijl de server met een gewicht van ‘50’ slechts één verzoek zou ontvangen. Weighted Round Robin moet voornamelijk worden gebruikt bij load balancing wanneer de servers in het cluster over verschillende resources beschikken.

Minste verbindingen

Beide round-robin-algoritmen houden tijdens de seriële distributie van serververzoeken door de load balancer geen rekening met het aantal verbindingen dat de ondergeschikte servers gedurende een bepaalde periode moeten onderhouden. Dit kan ertoe leiden dat er zich meerdere verbindingen opstapelen op één server in het cluster. Dit leidt tot overbelasting van de server, zelfs als deze minder verbindingen verwerkt dan andere. Het algoritme met de minste verbindingen biedt hiertegen bescherming. Het verdeelt verzoeken op basis van de bestaande verbindingen van elke server: de servermet de minste actieve verbindingen krijgt het volgende verzoek van de load balancer. Deze methode voor load balancing wordt aanbevolen voor homogene serverclusters waarin alle computers over vergelijkbare resources beschikken.

Gewogen minste verbindingen

Als een servercluster verschillende capaciteiten heeft, moet in plaats van het algoritme voor het minste aantal verbindingen, load balancing worden gebruikt op basis van de gewogen verdeling van bestaande verbindingen. Hierbij wordt zowel rekening gehouden met het aantal actieve verbindingen dat een server heeft als met de door de beheerder gedefinieerde weging. Dit zorgt voor een evenwichtige verdeling van de belasting binnen het servercluster. Nieuwe verzoeken worden automatisch door de load balancer toegewezen aan die servers waarvan de verhouding tussen actieve verbindingen en hun respectieve serverweging de laagste huidige belasting suggereert.

Welke problemen kunnen zich voordoen bij het gebruik van load balancing?

Vooral in de e-commercesector staat load balancing vaak voor uitdagingen. Hier volgt een voorbeeld: bezoekers van een website voegen artikelen die ze willen kopen toe aan hun winkelmandje. Deze artikelen blijven gedurende de hele sessie opgeslagen, ongeacht naar welke pagina de gebruikers binnen de online marktplaats navigeren. Een typische load balancer zou de verzoeken over verschillende servers verdelen. Dit betekent dat de inhoud van het winkelmandje verloren zou gaan.

Om dit probleem op te lossen, zijn twee benaderingen denkbaar. Ten eerste kan de load balancer reageren op het IP-adres van de gebruikers. Dan worden bijvoorbeeld verzoeken van hetzelfde IP-adres altijd naar dezelfde server gestuurd. Een andere methode zou zijn om een sessie-ID uit het verzoek zelf te lezen om te bepalen naar welke server het verzoek moet worden gestuurd.

Waarom zijn load balancers zo belangrijk?

Als u uw geld via internet verdient, kan uw bedrijf zich geen serverstoring veroorloven. En als u slechts één server gebruikt en deze crasht door overbelasting, is uw website niet langer toegankelijk voor potentiële klanten. Dit leidt tot verschillende problemen: ten eerste kunt u tijdens de overbelasting geen inkomsten genereren. Diensten kunnen niet worden geboekt en aankopen kunnen niet worden gedaan. Bovendien neemt het vertrouwen van (potentiële) klanten af. Het is dubbel zo erg voor gebruikers die tijdens het bestelproces te maken krijgen met een overbelasting van de server. Er is vaak grote onzekerheid en de betrokkenen weten niet of de bestelling daadwerkelijk is aangekomen en in het systeem is geregistreerd.

Zelfs als u geen diensten rechtstreeks via internet aanbiedt, moet uw website te allen tijde toegankelijk zijn. Een website is een van de belangrijkste kanalen voor toegang tot informatie. Als potentiële klanten online naar informatie over uw bedrijf zoeken en uw site niet kunnen bereiken, zullen ze eerder geneigd zijn om uw concurrenten te overwegen. Met een load balancer kunt u dergelijke risico’s minimaliseren.

Hoe u load balancing in uw bedrijf kunt implementeren

Load balancing kan worden geïmplementeerd met behulp van zowel hardware- als softwareoplossingen op een virtuele server. Professionele complete pakketten worden door talrijke providers aangeboden, hetzij als Infrastructure-as-a-Service (IaaS), hetzij als netwerkcomponent voor uw eigen IT-infrastructuur.

Aangezien de aanschaf van eigen load balancers meestal hoge kosten met zich meebrengt, kiezen kleinere bedrijven vaak voor open-sourceoplossingen zoals NGINX. Dit biedt een kosteneffectieve manier om een hoge beschikbaarheid voor uw bedrijfswebsite of andere webprojecten te garanderen door middel van een efficiënte verdeling van de belasting binnen het servernetwerk. In de webhostingsector wordt load balancing ook vaak aangeboden als een extra functie voor cloudservers.

Ga naar hoofdmenu