Backpressure
Backpressure tilpasser tilførselen av data til mottakerens behandlingskapasitet gjennom signaler om å senke tempoet eller ta pause.
Backpressure er tilbakemelding fra en belastet mottaker til datakilden tidligere i kjeden om å sende færre data eller ta pause. Et behandlingstrinn kan dermed tilpasse tilførselen til kapasiteten sin.
I en fiktiv import leser kilden 120 poster i sekundet, mens databasen behandler 40. Ved konstante hastigheter og uten forkastede poster vokser køen med 80 poster i sekundet. En større buffer utsetter problemet. Backpressure får kilden til å lese langsommere eller ta pause til behandlingen holder følge.
Send pausesignalet videre
I en fungerende skrivestrøm i Node.js betyr returverdien false fra .write() at avsenderen skal vente med flere datablokker. Blokken som allerede er levert, sendes ikke på nytt av den grunn. Etter drain kan flere blokker følge; feil og lukkede strømmer må håndteres separat. Bufferterskelen highWaterMark er ingen fast øvre grense for det samlede minneforbruket.
Signalet hjelper bare hvis de tidligere trinnene respekterer det og begrenser sine egne buffere. Kan ikke kilden bremses, må applikasjonen også begrense hvor mye arbeid den tar imot, og bestemme hvordan overbelastning skal håndteres. Rate limiting fastsetter en tillatt forespørselsrate; backpressure reagerer på mottakskapasiteten i dataflyten.
Kilder
Beslektede begreper
- MeldingskøEn meldingskø fungerer som buffer for meldinger til en konsument henter dem for behandling.
- Begrensning av forespørslerEn forespørselsgrense angir hvor ofte en klient kan sende forespørsler etter en bestemt regel.
- Cache stampedeEt cache stampede kan oppstå når samtidige forespørsler ikke finner de samme dataene i cachen og starter samme kostbare arbeid.
- KappløpstilstandEt feil resultat avhenger av tidsrekkefølgen i overlappende tilganger.
- MinnelekkasjeMinne som ikke lenger trengs, holdes unødvendig igjen under drift.
- SamtidighetÅ organisere flere oppgaver slik at behandlingen av dem kan overlappe i tid.
Ditt prosjekt med ASES
Beskriv prosjektet ditt for oss. Vi tar kontakt med en første vurdering.