{count, plural, one {Cursus} other {Cursussen}}
Load balancing is een concept dat op meer plekken opduikt dan je zou verwachten.
Neem een zaterdagochtend in een overvolle supermarkt met maar één open kassa. Vijftien mensen staan in de rij, iedereen is geïrriteerd, en de arme caissière lijkt elk levensbesluit dat tot dit moment leidde opnieuw te overwegen. De spanning loopt op, totdat er ineens 3 medewerkers verschijnen, een paar extra kassa’s openen en mensen naar de kortste rijen sturen. Alles gaat sneller, de druk valt weg en de rijen beginnen normaal te bewegen. Dat is, in essentie, load balancing.
In dit artikel neem ik je mee door wat load balancing is, waarom het belangrijk is, hoe het onder de motorkap werkt en hoe het voorkomt dat de digitale wereld uit elkaar valt als het druk wordt. Je hebt geen specifieke voorkennis nodig om dit artikel te volgen, dus maak je geen zorgen als je niet diep in netwerken of cloudarchitectuur zit! Deze gids blijft duidelijk, praktisch en (hopelijk) een beetje leuk.
Wat is load balancing en waarom is het belangrijk?
In de techwereld is load balancing de manier waarop we inkomend verkeer of taken over meerdere servers of resources verdelen. In plaats van één machine te laten verzuipen onder alle druk, spreidt een load balancer het werk zodat alles snel, stabiel en schaalbaar blijft. Het is overal in moderne infrastructuur: cloudplatforms gebruiken het om miljoenen gebruikers aan te kunnen, AI-pijplijnen leunen erop om datalasten over nodes te verdelen en e-commercesites rekenen erop om Black Friday te overleven.
Stel je even voor dat je app geen load balancer heeft. Eén server krijgt alle requests, al het verkeer, alle druk. Misschien houdt die het even vol, tot het (onvermijdelijk) niet meer gaat. Hij wordt traag, gebruikers raken gefrustreerd, misschien crasht hij helemaal. Ondertussen zitten de andere servers digitaal duimen te draaien, zonder iets te doen.
Zonder load balancing zit je in feite met:
- Single points of failure: als één server uitvalt, gaat alles plat.
- Slechte prestaties onder druk: overbelaste servers reageren trager (of helemaal niet).
- Beperkte schaalbaarheid: meer servers toevoegen helpt niet als ze niet worden gebruikt.
- Gefrustreerde gebruikers: wat, laten we eerlijk zijn, het echte probleem is.
Met een load balancer ziet het er heel anders uit. Die zit vóór je backendservers, houdt in de gaten hoe het met elke server gaat en verdeelt inkomende requests naar degene die het gezondst of het minst druk is. Sommige monitoren zelfs zaken als responstijd of serverresources in real time.
Dit levert je op:
- Hoge beschikbaarheid: als een server faalt, wordt verkeer automatisch omgeleid.
- Betere performance: niemand is overbelast, dus alles draait sneller.
- Schaalbaarheid: je kunt servers naar behoefte toevoegen of weghalen, en de load balancer past zich aan.
- Fouttolerantie: storingen trekken niet alles tegelijk omver.
- Kostenefficiëntie: je benut je resources beter.
- Verbeterde beveiliging: sommige load balancers helpen kwaadaardig verkeer te blokkeren en interne services te verbergen.
Als je nog aan het supermarktvoorbeeld denkt: stel je die rij van 15 mensen voor die slim wordt verdeeld over vijf kassa’s. Niemand raakt in paniek, niemand schreeuwt, en jij bent sneller bij het diepvriespaden met pizza. Dat is het doel.
Hoe load balancing werkt
We hebben het gehad over waarom load balancing nuttig is. Laten we nu kijken naar hoe het onder de motorkap werkt.
Op hoofdlijnen zit een load balancer tussen de clients (mensen of systemen die requests doen) en je backendservers (degene die het werk doen). Zijn taak is elk inkomend verzoek ontvangen en beslissen waar het naartoe moet.
Dit is de basisstroom:
- Een gebruiker probeert je app of service te openen.
- De request komt eerst bij de load balancer binnen.
- De load balancer controleert welke backendservers beschikbaar, gezond en niet te druk zijn.
- Hij stuurt de request door naar de gekozen server.
- De server handelt de request af en stuurt het antwoord terug, direct of via de load balancer.
In theorie vrij eenvoudig, maar achter de schermen gebeurt er veel, en er zijn een paar kernconcepten die zorgen dat het werkt:
- Health checks: de load balancer pingt elke backendserver regelmatig om te checken of hij nog leeft en reageert. Als een server een health check niet haalt, wordt hij tijdelijk uit de rotatie gehaald totdat hij herstelt.
- Failover: als een server crasht tijdens een request (gebeurt), kan de load balancer verkeer omleiden naar een gezonde server zonder de eindgebruiker lastig te vallen.
- Session persistence (ook wel “stickiness”): soms wil je dat een gebruiker bij dezelfde server blijft, zoals tijdens een inlogsessie. Sticky sessions maken dat mogelijk, al kennen ze trade-offs (daar komen we later op terug).
- SSL-terminatie: load balancers kunnen HTTPS-verkeer ontsleutelen zodat backendservers dat niet hoeven te doen. Dit neemt rekenwerk weg en houdt alles snel.
Load balancing vs. load balancer
Kleine sidenote: “load balancing” is het concept (verkeer verdelen), en een “load balancer” is de tool of service die het mogelijk maakt. Je hoort beide termen vaak door elkaar, maar het helpt om het onderscheid te kennen.
Load balancing-algoritmen
Hoewel load balancers soms gewoon willekeurig een server kiezen, zijn er echte strategieën, zogeheten load balancing-algoritmen, die bepalen hoe inkomend verkeer over backendresources wordt verdeeld.
Sommige zijn vrij simpel en voorspelbaar, terwijl andere zich in real time aanpassen op basis van serverprestaties, aantal verbindingen of responssnelheid. Laten we ze opdelen in twee brede categorieën.
Statische algoritmen
Deze passen zich niet aan wat er in het systeem gebeurt; ze volgen gewoon een vooraf gedefinieerde regel. Dat maakt ze voorspelbaar en makkelijk te implementeren, maar niet altijd ideaal onder druk in de echte wereld.
- Round Robin: de load balancer stuurt requests in een roterende volgorde naar servers: A, B, C, A, B, C… Simpel, maar houdt geen rekening met hoe druk elke server is.
- Weighted Round Robin: zoals Round Robin, maar sommige servers krijgen meer requests dan andere op basis van gewichten — handig als sommige machines krachtiger zijn dan andere.
- IP Hash: gebruikt het IP-adres van de client om te bepalen naar welke server wordt gerouteerd. Zorgt dat dezelfde gebruiker dezelfde backend blijft raken, goed voor basis-stickiness van sessies.
- Client-side Random Selection: zoals de naam suggereert kiezen clients willekeurig een server (vaak uit een door DNS geleverde lijst). Dit haalt overhead bij de load balancer weg, maar kan leiden tot oneven verdeling.
Statische algoritmen. Afbeelding door de auteur
Dynamische algoritmen
Deze algoritmen passen zich aan op basis van wat er daadwerkelijk in het systeem gebeurt. Ze zijn slimmer, maar vereisen meer monitoring en systeeminzicht.
- Least Connections: stuurt de volgende request naar de server met de minste actieve verbindingen. Ideaal bij systemen met langlevende sessies of onvoorspelbare pieken.
- Weighted Least Connections: hetzelfde idee, maar met servergewichten meegewogen. Grotere servers kunnen meer verbindingen aan en krijgen dus meer verkeer.
- Least Response Time: routeert requests naar de server met de snelste responstijd. Ideaal voor performance-geoptimaliseerde omgevingen.
- Resource-based Load Balancing: houdt rekening met zaken als CPU-, geheugen- of I/O-gebruik. Als de resources van een server onder druk staan, krijgt die minder verkeer. Deze aanpak is krachtig, maar complexer om te implementeren en te monitoren.

Dynamische algoritmen. Afbeelding door de auteur
Statische algoritmen zijn top als je verkeer voorspelbaar is en je servers gelijkwaardig zijn. Dynamische algoritmen blinken uit als het allemaal wat chaotischer is.
Oké, laten we nu praten over de verschillende soorten load balancers zelf: hardware, software, cloud-native en meer.
Soorten load balancers
Niet alle load balancers zijn gelijk. Sommige leven in hardware, sommige draaien als software, sommige worden meegeleverd met clouddiensten en sommige zijn gespecialiseerd in heel specifieke use-cases. Welke je gebruikt hangt af van je architectuur, je schaal en soms gewoon je budget.
Op basis van deployment
Hardwareload balancers
Dit zijn fysieke appliances in je datacenter, speciaal gebouwd om verkeer te balanceren. Ze zijn krachtig en snel, maar duur en lastiger on-demand te schalen. Denk aan grote enterprises en on-prem-opstellingen.
Softwareload balancers
Deze draaien als applicaties op general-purpose servers. Tools zoals HAProxy, nginx (eigendom van F5) of Envoy vallen in deze categorie. Ze zijn goedkoper, flexibeler en makkelijker te integreren in de meeste omgevingen.
Cloud-native load balancers
Als je AWS, Azure of GCP gebruikt, gebruik je waarschijnlijk al een cloud-native load balancer, zoals AWS ELB, Azure Load Balancer of GCP Load Balancing. Ze worden voor je beheerd, schalen automatisch en integreren netjes met andere services.
Wil je zien hoe AWS dit aanpakt (en nog een heleboel andere infrastructuuronderdelen), bekijk dan onze cursus AWS Cloud Technology and Services Concepts.
Je hebt misschien gehoord van elastische load balancers. Die zijn ontworpen om mee te schalen met je workload. Ze maken vaak deel uit van cloud-native systemen, maar de term “elastisch” betekent simpelweg dat ze zich dynamisch aan verkeer kunnen aanpassen, ideaal bij pieken of onvoorspelbare belasting.
Op basis van OSI-laag
Het OSI-model is een conceptueel raamwerk dat beschrijft hoe data door een netwerk beweegt. Het heeft zeven lagen, van de fysieke kabel tot aan de app in je browser. Voor load balancing zijn laag 4 en 7 het meest relevant.
Laag 4-load balancers (Transportlaag)
Deze nemen routeringsbeslissingen op basis van IP-adressen, poorten en TCP/UDP-verkeer. Ze zijn snel en efficiënt, maar weten niets van de inhoud die wordt verstuurd.
Laag 7-load balancers (Applicatielaag)
Deze kijken naar de daadwerkelijke inhoud van de request, zoals HTTP-headers, cookies of URL’s. Daarmee kunnen ze geavanceerdere dingen doen, zoals routeren op basis van URL-pad, A/B-testen of taalvoorkeuren. Als je bijvoorbeeld wilt dat /api/-requests naar het ene cluster gaan en /login naar een ander, dan heb je laag 7 nodig.
Gespecialiseerde typen
Global server load balancers (GSLB)
Gebruikt om verkeer over geografisch verspreide datacenters te verdelen. Handig voor multiregio-, low-latency- of disaster recovery-opstellingen.
Interne load balancers
Werken volledig binnen private netwerken, gebruikt om verkeer tussen services binnen een cloud of cluster te balanceren.
Diameter-load balancers
Gespecialiseerd voor telecomsystemen die het Diameter-protocol gebruiken, vaak te vinden in mobiele netwerken voor routering, authenticatie en billing-requests.
HTTP(S)-load balancers
Deze zijn geoptimaliseerd voor specifiek HTTP- en HTTPS-verkeer. Ze bevatten vaak SSL-terminatie, op URL gebaseerde routing en ingebouwde DDoS-bescherming.
Elk type load balancer lost een ander soort probleem op. Sommige focussen op schaal, andere op latency, beveiliging of gebruiksgemak. Weten welke je moet kiezen kan een groot verschil maken in hoe soepel (of pijnlijk) je infrastructuur draait.
Architecturen en topologieën van load balancers
Tot nu toe hebben we besproken wat load balancers doen en welke types je kunt gebruiken, maar hoe zitten ze onder de motorkap in elkaar? De architectuur van een loadbalancingsysteem beïnvloedt alles: van hoe goed het schaalt tot hoe gracieus het met storingen omgaat.
Leader-followermodel
Dit is de klassieke opzet: één “leader”-node neemt de beslissingen en verdeelt werk over meerdere “worker”-nodes. Simpel en overzichtelijk, maar de leader kan een bottleneck of single point of failure worden als die niet goed is geback-upt.
Gedistribueerde load balancing
In plaats van één centraal brein is elke load balancer zich bewust van zijn peers en deelt het werk. Dit verbetert fouttolerantie en schaalbaarheid, maar maakt coördinatie wat lastiger. Je ziet dit vaak in grootschalige systemen met anycast-routing of DNS-gebaseerde verdeling.
In gecontaineriseerde omgevingen, vooral met Kubernetes, wordt load balancing nog interessanter. Services, ingress controllers en sidecars werken samen om verkeer slim binnen clusters te routeren. Als je net begint met die wereld, is onze cursus Introduction to Kubernetes een praktische manier om de basis te leren.
Work stealing
In deze opzet kunnen idle workers taken “stelen” van drukke workers. Wordt vaak gebruikt in rekenintensieve omgevingen zoals taakqueues of datapijplijnen, maar minder bij webverkeer. Het is wel een nuttig patroon voor het balanceren van onvoorspelbare workloads.
Hiërarchieën op meerdere niveaus
Sommige systemen stapelen hun load balancers, bijvoorbeeld één op globaal niveau (regio-overstijgend), een andere op datacenterniveau en een derde binnen een specifieke servicecluster. Dit helpt om complexiteit te beheersen en houdt elke laag gefocust op een specifieke scope.

Architecturen voor load balancing.
Elk van deze architecturen kent trade-offs. Gecentraliseerde modellen zijn makkelijk te begrijpen maar riskeren knelpunten te worden, gedistribueerde modellen schalen beter maar voegen complexiteit toe, en gelaagde topologieën bieden modulariteit maar kunnen latency introduceren als ze niet zorgvuldig zijn ontworpen. Zoals gewoonlijk is er geen one-size-fits-all antwoord. Het hangt af van de grootte van je systeem, verkeerspatronen en risicotolerantie.
Uitdagingen en beperkingen
Load balancing is krachtig, maar geen magie. Hoewel het systemen betrouwbaarder, schaalbaarder en efficiënter kan maken, introduceert het ook nieuwe lagen van complexiteit en potentiële faalpunten. Laten we enkele trade-offs bespreken waar engineers tegenaan lopen, zowel technisch als operationeel.
Algemene uitdagingen bij load balancing
De load balancer zelf kan een bottleneck worden
Ironisch genoeg kan juist de tool die verkeer verdeelt een single point of failure worden als de architectuur niet deugt, zeker in gecentraliseerde of leader-gebaseerde modellen. Daarom gebruiken veel systemen meerdere load balancers, failovermechanismen of zelfs DNS-niveau-balancering om het risico te spreiden.
Het voegt overhead toe
Hoe snel ook, een load balancer voegt alsnog een extra hop toe tussen client en backend. Dat kan latency introduceren, vooral in meerlagige architecturen of bij routering op applicatielaag (laag 7).
SSL-terminatie is nuttig maar kostbaar
HTTPS-verkeer op het niveau van de load balancer afhandelen (oftewel SSL-terminatie) kan CPU-werk bij backendservers wegnemen, maar betekent ook dat de load balancer meer doet en verantwoordelijk wordt voor gevoelige beveiligingsinstellingen en certificaten.
Session persistence vs. statelessness
Sticky sessions zijn handig om gebruikers aan dezelfde backend te koppelen (zoals tijdens inloggen), maar maken schalen complexer en bemoeilijken volledig stateless services. Engineers moeten vaak kiezen tussen gebruikerservaring en architecturale elegantie.
Configuratie wordt snel complex
Hoe intelligenter je routeringslogica, hoe meer ruimte voor bugs, misrouting of subtiele performanceproblemen die lastig te traceren zijn. Je voelt je slim bij het opzetten, en een stuk minder als je om 2 uur ’s nachts wakker wordt gebeld om flakey health checks te debuggen.
Praktische uitdagingen voor engineers en beheerders
Algoritmen tunen is niet one-size-fits-all
Elke applicatie gedraagt zich anders onder load. Kiezen tussen statische of dynamische algoritmen en het tunen van zaken als verbindingdrempels of health check-intervallen kost vaak veel trial-and-error en ervaring.
Troubleshooting is lastiger met een tussenlaag
Als er iets misgaat, is de load balancer een extra plek om te onderzoeken. Misgeconfigureerde routes, gedropte requests, cachinglagen of inconsistente health check-resultaten kunnen het beeld vertroebelen.
Beveiliging voegt extra complexiteit toe
Als je load balancer SSL afhandelt, moet je zorgen dat die correct geconfigureerd, gepatcht en gemonitord is. Elke misstap kan kwetsbaarheden creëren of beveiligde communicatie breken.
Observability wordt belangrijker
Dit hangt samen met het punt over extra complexiteit. Je hebt sterke logging, metrics en tracing nodig om te begrijpen hoe requests door het systeem stromen. Zonder goede observability is een slecht gedragende load balancer lastig te spotten en nog lastiger te fixen.
Om duidelijk te zijn: geen van deze punten zijn redenen om géén load balancing te gebruiken. Het is gewoon de realiteit van het bouwen van veerkrachtige systemen: elke laag die je toevoegt helpt, maar brengt ook nieuwe uitdagingen met zich mee.
Toekomsttrends in load balancing
Zoals alles in tech evolueert load balancing mee. Naarmate systemen complexer, meer gedistribueerd en dynamischer worden, komen traditionele aanpakken onder druk te staan en worden nieuwe strategieën uitgeprobeerd.
AI- en ML-gedreven load balancing
Dat is een vrij logische, gezien de wereldwijde techtrend. Moderne platforms beginnen machine learning te integreren om verkeerspatronen te voorspellen en slimmere routeringsbeslissingen te nemen. In plaats van alleen te reageren op de huidige load, kunnen deze systemen pieken anticiperen (zoals een productlancering of breaking news) en de verkeersstroom vooraf aanpassen. Het is nog vroeg, maar het potentieel voor zelf-optimaliserende infrastructuur is echt.
Als je die kant wilt verkennen, is onze tutorial Machine Learning, Pipelines, Deployment en MLOps een mooi startpunt.
Applicatie-bewuste load balancing
Traditionele load balancers weten niet echt wat je app doet; ze kijken alleen naar verkeer. Applicatie-bewuste load balancing gaat dieper. Het kan beslissen op basis van gebruikersidentiteit, apparaattype of het zakelijke belang van de request. Zo kan het ingelogde gebruikers prioriteren tijdens een piek of gevoelige traffic naar clusters met hogere beveiliging sturen.
Multi-cloud en hybride omgevingen
Nu bedrijven workloads over meerdere cloudproviders spreiden (of on-prem met cloud mixen), passen load balancers zich aan. Ze moeten locatiebewuster zijn, cross-cloud failover ondersteunen en routing beheren tussen zeer verschillende omgevingen. Verwacht in deze setups meer wereldwijde verkeersregisseurs en DNS-niveau-orkestratie.
Edge- en lokale load balancing
Met de opkomst van edge computing verschuift load balancing dichter naar de gebruiker. In plaats van alles via een centrale cloud te routeren, worden requests vanaf edge-nodes bediend, waardoor latency flink daalt. Load balancing aan de edge moet lichtgewicht, slim en hyperlokaal zijn.
Autonome en agent-gebaseerde systemen
Sommige experimentele platforms verkennen agent-gebaseerde load balancing, waarbij individuele services helpen beslissen hoe verkeer moet stromen op basis van wat ze lokaal zien. Het is meer gedistribueerd en kan snel reageren op kleinschalige verschuivingen, maar introduceert ook coördinatie-uitdagingen.
Ik denk dat het wel duidelijk is dat al deze trends in één richting wijzen: meer dynamische, intelligente en contextbewuste load balancing. De dagen van simpele round-robin-routering zijn nog steeds springlevend (waarom iets weggooien dat werkt?), maar ze delen het podium steeds meer met systemen die leren, zich aanpassen en realtime beslissingen nemen op basis van veel meer dan serverload.
Conclusie
In dit artikel hebben we gekeken naar wat load balancing is, waarom het ertoe doet en hoe het onder de motorkap werkt. We hebben het gehad over algoritmen, architecturen en toepassingen in de praktijk en hopelijk alles net wat minder mysterieus gemaakt. Hopelijk gaf dit je een duidelijker beeld van hoe alles samenkomt!
Als volgende stap, als je meer wilt leren, schrijf je in voor onze gerichte cursussen. Ik raad onze cursus Introduction to Kubernetes en onze cursus AWS Cloud Technology and Services Concepts aan.

Ik ben een productgerichte tech lead die gespecialiseerd is in het laten groeien van startups in een vroeg stadium, van het eerste prototype tot product‑market fit en verder. Ik ben eindeloos nieuwsgierig naar hoe mensen technologie gebruiken, en ik werk graag nauw samen met oprichters en multidisciplinaire teams om gedurfde ideeën tot leven te brengen. Als ik geen producten bouw, zoek ik inspiratie in nieuwe uithoeken van de wereld of ontspan ik me in de yogastudio.
Veelgestelde vragen over load balancing
Kan load balancing worden gebruikt met serverless-architecturen?
Een soort van. Traditionele load balancers zijn meestal niet betrokken bij serverless functies zoals AWS Lambda, maar de cloudprovider zelf regelt de schaal en routing achter de schermen. Dus ja, load balancing gebeurt nog steeds, het is alleen voor jou geabstraheerd.
Wat is het verschil tussen load balancing en autoscaling?
Load balancing verdeelt verkeer over beschikbare resources, autoscaling voegt die resources toe of verwijdert ze op basis van vraag. Ze werken goed samen: schalen zorgt dat er genoeg servers zijn, en load balancing zorgt dat die servers efficiënt worden gebruikt.
Hoe beïnvloedt load balancing databaseprestaties of -architectuur?
Databases profiteren ook van load balancing, vooral bij read-heavy workloads. Tools zoals read replicas, proxy-lagen en connection pooling helpen DB-queries te verdelen, maar schrijfbewerkingen vereisen nog steeds consistentiestrategieën, wat lastig kan worden.

