Basiskennis van systeemontwerp voor backendontwikkelaars · Les

Load balancers en caching

Leer hoe load balancers verkeer verdelen en hoe caching de prestaties verbetert en de belasting van databases vermindert.

Les 3 van 411 stappen

Load balancers en caching is een gratis Basiskennis van systeemontwerp voor backendontwikkelaars-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Basiskennis van systeemontwerp voor backendontwikkelaars. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Basiskennis van systeemontwerp voor backendontwikkelaars bevat in totaal 4 lessen.

Wat zijn load balancers?

Stel je een populaire website met miljoenen gebruikers voor. Als alle gebruikers toegang proberen te krijgen tot één server, raakt die al snel overbelast!

Een load balancer werkt als een verkeersregelaar vóór je servers. Deze verdeelt binnenkomend netwerkverkeer over meerdere backend-servers of bronnen.

Waarom load balancers gebruiken?

Load balancers zijn essentieel voor moderne toepassingen omdat ze verschillende belangrijke voordelen bieden:

  • Betere prestaties: Voorkomt dat één server een knelpunt wordt door de belasting te spreiden.
  • Hoge beschikbaarheid: Als één server uitvalt, stuurt de load balancer het verkeer automatisch naar gezonde servers, zodat de dienstverlening doorgaat.
  • Schaalbaarheid: Voeg eenvoudig servers toe aan of verwijder servers uit je servergroep zonder gebruikers te beïnvloeden, zodat je systeem kan meegroeien.

Hoe ze verkeer verdelen

Wanneer een client een verzoek doet (bijvoorbeeld door een webpagina te bezoeken), komt dat eerst aan op het IP-adres van de load balancer. De load balancer bepaalt vervolgens welke backend-server het verzoek het beste kan verwerken.

De load balancer stuurt het verzoek door naar de gekozen server en de server stuurt zijn antwoord via de load balancer terug naar de client. Dit proces is transparant voor de gebruiker.

Verschillende methoden voor verkeersverdeling

Load balancers gebruiken verschillende algoritmen om te bepalen waar ze verkeer naartoe sturen. Twee veelgebruikte zijn:

  • Round-robin: Verdeelt verzoeken achtereenvolgens over elke server. Bijvoorbeeld: Server 1, daarna Server 2, daarna Server 3, en vervolgens opnieuw.
  • Minste verbindingen: Stuurt nieuwe verzoeken naar de server met de minste actieve verbindingen. Dit is handig wanneer verzoeken verschillende verwerkingstijden kunnen hebben.

Wat is caching?

Caching is een techniek waarbij kopieën van vaak opgevraagde gegevens worden opgeslagen op een tijdelijke, snellere opslaglocatie. Deze tijdelijke opslag heet een 'cache'.

Zie het als het onthouden van het antwoord op een veelgestelde vraag. In plaats van het antwoord elke keer opnieuw op te zoeken, haal je het direct uit je geheugen.

Waarom gegevens cachen?

Caching verbetert de prestaties en efficiëntie van een systeem aanzienlijk door:

  • Latentie te verminderen: Gegevens worden uit een snelle cache opgehaald in plaats van uit een tragere database of externe service.
  • De databasebelasting te verlagen: Minder verzoeken bereiken je primaire database, waardoor bronnen worden bespaard en overbelasting wordt voorkomen.
  • De gebruikerservaring te verbeteren: Snellere responstijden zorgen voor een soepelere en prettigere ervaring voor gebruikers.

Veelgebruikte locaties voor caching

Caching kan op verschillende lagen van je systeem plaatsvinden, afhankelijk van waar de gegevens nodig zijn:

  • Toepassingscache: Je toepassing slaat gegevens op in het eigen geheugen of in een lokale cacheopslag.
  • Gedistribueerde cache: Een afzonderlijke, gedeelde service (zoals Redis of Memcached) waartoe meerdere instanties van een toepassing toegang hebben.
  • Databasecache: Databases hebben vaak eigen interne cachingmechanismen voor vaak uitgevoerde query's of gegevensblokken.

Cache-hit of cache-miss?

Wanneer je systeem gegevens uit een cache probeert op te halen, gebeurt een van deze twee dingen:

  • Er is sprake van een cache-hit als de gegevens in de cache worden gevonden. Mooi! De gegevens worden snel teruggegeven en de oorspronkelijke bron wordt niet belast.
  • Er is sprake van een cache-miss als de gegevens niet in de cache worden gevonden. Het systeem haalt de gegevens vervolgens op uit de oorspronkelijke bron (bijvoorbeeld de database) en slaat ze meestal op in de cache voor toekomstige verzoeken.

Hoe een cache werkt

Hier zie je een vereenvoudigde weergave van de logica die een toepassing kan gebruiken bij het ophalen van gegevens. Dit illustreert het concept van een cache-hit en cache-miss:

function getData(key):
  // 1. Try to get data from cache
  data = cache.get(key)

  // 2. If data is found in cache (Cache Hit)
  if data is not null:
    return data
  // 3. If data is not found (Cache Miss)
  else:
    // Fetch from original source (e.g., database)
    data = database.fetch(key)
    // Store in cache for next time
    cache.put(key, data)
    return data

Met dit patroon worden vaak opgevraagde gegevens opgeslagen en snel opgehaald, waardoor de belasting van de database afneemt.

Vraag over load balancers en caching

Denk aan een populaire e-commercewebtoepassing die regelmatig een database bevraagt voor productgegevens en gebruikersprofielen. Welke twee componenten zijn het meest effectief om ervoor te zorgen dat de toepassing veel gebruikers gelijktijdig kan verwerken en snel reageert?

Samenvatting: load balancers en caching

In deze les hebben we twee essentiële componenten voor het bouwen van robuuste en goed presterende backend-systemen verkend: load balancers en caching.

  • Load balancers: Verdelen binnenkomend verkeer over meerdere servers om overbelasting te voorkomen, een hoge beschikbaarheid te garanderen en naadloze schaalbaarheid mogelijk te maken.
  • Caching: Slaat kopieën van vaak opgevraagde gegevens op in snellere, tijdelijke opslag om latentie te verminderen, de databasebelasting te verlagen en de algehele gebruikerservaring te verbeteren.

Een goede beheersing van deze concepten is essentieel voor het ontwerpen van schaalbare en responsieve toepassingen die efficiënt met verkeer uit de echte wereld kunnen omgaan.

Gratis beginnen

Leer Basiskennis van systeemontwerp voor backendontwikkelaars met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Load balancers en caching” gratis?

Ja — de volledige tekst van “Load balancers en caching” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Basiskennis van systeemontwerp voor backendontwikkelaars wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Basiskennis van systeemontwerp voor backendontwikkelaars bevat in totaal 4 lessen.

Wat leer ik in “Load balancers en caching”?

Leer hoe load balancers verkeer verdelen en hoe caching de prestaties verbetert en de belasting van databases vermindert. Je oefent met Basiskennis van systeemontwerp voor backendontwikkelaars door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Basiskennis van systeemontwerp voor backendontwikkelaars te beginnen?

Ervaring vooraf is niet nodig. Basiskennis van systeemontwerp voor backendontwikkelaars op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Load balancers en caching”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Basiskennis van systeemontwerp voor backendontwikkelaars?

Ja. Elke les over Basiskennis van systeemontwerp voor backendontwikkelaars bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Clients, servers en API's
  2. Databases en opslagopties
  3. Load balancers en caching
  4. Message queues en asynchrone verwerking
← Terug naar Basiskennis van systeemontwerp voor backendontwikkelaars