Een load balancer is de verkeersregelaar die voor een groep servers staat en binnenkomende verzoeken over hen verdeelt. In plaats van dat elke bezoeker op dezelfde machine terechtkomt, geeft de load balancer elk verzoek aan de server die ruimte heeft, zodat geen enkele overbelast raakt terwijl andere stilstaan. Het is het onderdeel dat load balancing in de praktijk laat gebeuren.
Stel je het personeel in een supermarkt voor dat klanten naar de kortste kassarij stuurt. Niemand staat achter een verstopte kassa terwijl een andere leeg is, en de hele winkel loopt vlotter door. Een load balancer doet dit voor webverzoeken, en hij doet iets wat een supermarkt niet kan: gaat een kassa onverwacht dicht, dan stuurt hij iedereen direct naar de open kassa’s. Daarom werkt hij vaak hand in hand met auto-scaling, dat er servers achter bijzet als het verkeer oploopt.
Load balancers doen ook gezondheidschecks. Ze peilen stilletjes elke server, en zodra er een niet meer reageert, halen ze die uit de roulatie, zodat bezoekers nooit naar een kapotte machine worden gestuurd.
Eén detail is het plannen waard. Leeft de sessie van een gebruiker alleen op één server, dan heb je of sticky sessions nodig, die de gebruiker aan dezelfde machine vastpinnen, of je bewaart sessiedata op een gedeelde plek zodat elke server het verzoek kan oppakken. Veel teams zetten de load balancer samen met een reverse proxy als Nginx, die aan diezelfde voordeur ook TLS en caching afhandelt.
Bij TopDevs zetten we een load balancer voor systemen van klanten met veel verkeer, zodat de site snel blijft tijdens drukke pieken en blijft draaien, ook als één server uitvalt.