SaaS-arkitektur og startup-utvikling · leksjon

Lastbalansering og tjenesteoppdagelse

Forstå hvordan SaaS-backender fordeler trafikk mellom mange instanser ved hjelp av lastbalansere, helsesjekker og tjenesteoppdagelse.

Leksjon 4 av 413 trinn

Lastbalansering og tjenesteoppdagelse er en gratis leksjon i SaaS-arkitektur og startup-utvikling på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SaaS-arkitektur og startup-utvikling, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SaaS-arkitektur og startup-utvikling inneholder totalt 4 leksjoner.

Behovet for lastbalansering

Når én server ikke kan håndtere all trafikken, kjører du flere kopier. En lastbalanserer står foran dem og fordeler innkommende forespørsler mellom disse instansene.

Dette er grunnlaget for horisontal skalering av SaaS-backender.

Slik fungerer en lastbalanserer

Klienter kobler seg til én adresse. Lastbalansereren mottar forespørselen og videresender den til én av backend-serverne, før den videresender svaret tilbake.

For klienten ser klyngen ut som én kraftig server.

Round robin

Den enkleste algoritmen er round robin: Forespørsler sendes til serverne etter tur. Hver server får en like stor andel.

const servers = ['s1', 's2', 's3'];
let i = 0;
function next() {
  const s = servers[i % servers.length];
  i++;
  return s;
}
console.log(next(), next(), next(), next());

Færrest tilkoblinger

Færrest tilkoblinger ruter hver nye forespørsel til serveren som for øyeblikket håndterer færrest aktive tilkoblinger.

Dette tilpasser seg bedre enn round robin når forespørsler har ulik varighet.

Lag 4 kontra lag 7

Lastbalanserere opererer på ulike nettverkslag:

  • Lag 4 (transport) — ruter etter IP og port, svært raskt
  • Lag 7 (applikasjon) — inspiserer HTTP og kan rute etter URL-bane eller headere

Lag 7 muliggjør smart ruting, for eksempel ved å sende /api til én gruppe og /static til en annen.

Helsesjekker

En lastbalanserer må unngå å sende trafikk til servere som er nede. Den kjører periodiske helsesjekker mot hver instans.

Et vanlig mønster er et /health-endepunkt som returnerer 200 OK når applikasjonen er klar.

app.get('/health', (req, res) => {
  res.status(200).json({ status: 'ok' });
});

Sticky sessions

Noen applikasjoner lagrer sesjonstilstand i serverminnet. Sticky sessions binder en klient til den samme serveren, slik at sesjonen bevares.

Bedre praksis er å holde serverne tilstandsløse og lagre sesjoner i et delt lager, slik at enhver server kan håndtere enhver forespørsel.

Tjenesteoppdagelse

I dynamiske miljøer kommer servere til og forsvinner hele tiden. Tjenesteoppdagelse holder et oppdatert register over hvilke instanser som finnes og er friske.

Verktøy som Consul, etcd eller Kubernetes-tjenester automatiserer dette.

Oppdagelse på klient- kontra serversiden

To modeller:

  • Serversiden — klienter kontakter en lastbalanserer som spør registeret
  • Klientsiden — klienter spør registeret direkte og velger en instans selv

Serversiden er enklere, mens klientsiden fjerner ett nettverkshopp.

Integrasjon med autoskalering

Lastbalanserere brukes sammen med autoskalering: Når trafikken øker, starter nye instanser, registrerer seg gjennom tjenesteoppdagelse, og balansereren begynner automatisk å rute trafikk til dem.

Når trafikken synker, fjernes instansene kontrollert etter at tilkoblingene er tømt.

Kontrollert tømming

Før en instans avsluttes, bør balansereren slutte å sende nye forespørsler til den, men la eksisterende forespørsler fullføres. Dette kalles tømming av tilkoblinger.

Det forhindrer at forespørsler mistes under utrullinger og nedskalering.

Kort sjekk

Test kunnskapene dine om lastbalansering.

Oppsummering

Du har lært hvordan SaaS-backender fordeler trafikk:

  • Lastbalanserere med round robin og færrest tilkoblinger
  • Ruting på lag 4 kontra lag 7 og helsesjekker
  • Tilstandsløs design, tjenesteoppdagelse og kontrollert tømming

Til sammen gjør dette det mulig for en backend å skalere horisontalt og tåle feil.

Gratis å komme i gang

Lær deg SaaS-arkitektur og startup-utvikling med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Lastbalansering og tjenesteoppdagelse» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien SaaS-arkitektur og startup-utvikling, inkludert «Lastbalansering og tjenesteoppdagelse», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i SaaS-arkitektur og startup-utvikling inneholder totalt 4 leksjoner.

Hva lærer jeg i «Lastbalansering og tjenesteoppdagelse»?

Forstå hvordan SaaS-backender fordeler trafikk mellom mange instanser ved hjelp av lastbalansere, helsesjekker og tjenesteoppdagelse. Du øver på SaaS-arkitektur og startup-utvikling med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med SaaS-arkitektur og startup-utvikling?

Ingen tidligere erfaring er nødvendig. SaaS-arkitektur og startup-utvikling på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Lastbalansering og tjenesteoppdagelse»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne SaaS-arkitektur og startup-utvikling-leksjonen?

Ja. Alle SaaS-arkitektur og startup-utvikling-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Teknikker for horisontal skalering
  2. Meldingskøer og hendelsesdrevet arkitektur
  3. Grunnleggende om serverløs arkitektur
  4. Lastbalansering og tjenesteoppdagelse
← Tilbake til SaaS-arkitektur og startup-utvikling