Loadbalancering og service discovery
Forstå, hvordan SaaS-backends fordeler trafik på tværs af mange instanser ved hjælp af load balancere, sundhedstjek og service discovery.
Loadbalancering og service discovery er en gratis SaaS-arkitektur og iværksætterudvikling-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i SaaS-arkitektur og iværksætterudvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. SaaS-arkitektur og iværksætterudvikling-kurset indeholder 4 lektioner i alt.
Behovet for belastningsfordeling
Når én server ikke kan håndtere al trafik, kører du mange kopier. En belastningsfordeler står foran dem og fordeler indgående forespørgsler på disse instanser.
Det er grundlaget for horisontal skalering af SaaS-backends.
Sådan fungerer en belastningsfordeler
Klienter opretter forbindelse til én adresse. Belastningsfordeleren modtager forespørgslen og videresender den til en af backendserverne og sender derefter svaret tilbage.
For klienten ser klyngen ud som én kraftig server.
Round robin
Den enkleste algoritme er round robin: Forespørgsler sendes skiftevis til serverne. Hver server får en lige 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 forbindelser
Færrest forbindelser sender hver ny forespørgsel til den server, der i øjeblikket håndterer færrest aktive forbindelser.
Det tilpasser sig bedre end round robin, når forespørgsler har forskellige varigheder.
Lag 4 sammenlignet med lag 7
Belastningsfordelere fungerer på forskellige netværkslag:
- Lag 4 (transport) — fordeler efter IP og port, meget hurtigt
- Lag 7 (applikation) — inspicerer HTTP og kan fordele efter URL-sti eller headere
Lag 7 muliggør intelligent fordeling, f.eks. ved at sende /api til én pulje og /static til en anden.
Sundhedstjek
En belastningsfordeler skal undgå at sende trafik til døde servere. Den kører regelmæssige sundhedstjek mod hver instans.
Et almindeligt mønster er et /health-slutpunkt, der returnerer 200 OK, når applikationen er klar.
app.get('/health', (req, res) => {
res.status(200).json({ status: 'ok' });
});Klæbrige sessioner
Nogle applikationer gemmer sessionstilstand i serverens hukommelse. Klæbrige sessioner binder en klient til den samme server, så sessionen bevares.
Bedre praksis er at holde serverne tilstandsløse og gemme sessioner i et delt lager, så enhver server kan håndtere enhver forespørgsel.
Tjenesteopdagelse
I dynamiske miljøer kommer servere hele tiden til og forsvinder igen. Tjenesteopdagelse holder et opdateret register over, hvilke instanser der findes og er sunde.
Værktøjer som Consul, etcd eller Kubernetes-tjenester automatiserer dette.
Klientbaseret sammenlignet med serverbaseret opdagelse
Der findes to modeller:
- Serverbaseret — klienter sender forespørgsler til en belastningsfordeler, der slår op i registret
- Klientbaseret — klienter spørger registret direkte og vælger selv en instans
Serverbaseret opdagelse er enklere, mens klientbaseret opdagelse fjerner et netværkshop.
Integration med autoskalering
Belastningsfordelere arbejder sammen med autoskalering: Når trafikken stiger, startes nye instanser, de registreres gennem tjenesteopdagelse, og fordeleren begynder automatisk at sende trafik til dem.
Når trafikken falder, fjernes instanserne på en kontrolleret måde, efter at forbindelserne er afviklet.
Kontrolleret afvikling
Før en instans lukkes ned, bør fordeleren stoppe med at sende nye forespørgsler til den, men lade eksisterende forespørgsler blive færdige. Det kaldes forbindelsesafvikling.
Det forhindrer mistede forespørgsler under udrulninger og nedskalering.
Hurtigt tjek
Test din viden om belastningsfordeling.
Opsummering
Du har lært, hvordan SaaS-backends fordeler trafik:
- Belastningsfordelere med round robin og færrest forbindelser
- Fordeling på lag 4 og lag 7 samt sundhedstjek
- Tilstandsløst design, tjenesteopdagelse og kontrolleret afvikling
Tilsammen gør dette det muligt for en backend at skalere horisontalt og overleve fejl.
Lær SaaS-arkitektur og iværksætterudvikling med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Loadbalancering og service discovery” gratis?
Ja — alle 3 lektioner i læringssporet SaaS-arkitektur og iværksætterudvikling, inklusive “Loadbalancering og service discovery”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. SaaS-arkitektur og iværksætterudvikling-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Loadbalancering og service discovery”?
Forstå, hvordan SaaS-backends fordeler trafik på tværs af mange instanser ved hjælp af load balancere, sundhedstjek og service discovery. Du øver dig i SaaS-arkitektur og iværksætterudvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på SaaS-arkitektur og iværksætterudvikling?
Der kræves ingen tidligere erfaring. SaaS-arkitektur og iværksætterudvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Loadbalancering og service discovery”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne SaaS-arkitektur og iværksætterudvikling-lektion?
Ja. Alle SaaS-arkitektur og iværksætterudvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Teknikker til horisontal skalering
- Message queues og eventdrevet arkitektur
- Grundlæggende serverless-arkitektur
- Loadbalancering og service discovery