Backpressure en flow control op schaal
Leer hoe backpressure streamverwerkingssystemen beschermt tegen overbelasting en welke technieken Kafka-gebaseerde pipelines gebruiken om stabiel te blijven bij piekbelasting.
Backpressure en flow control op schaal is een gratis De basis van Apache Kafka en streamverwerking-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Apache Kafka en streamverwerking. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.
Wat is backpressure?
Backpressure is feedback die een snelle producent afremt wanneer een volgende verwerkingsfase het tempo niet kan bijhouden.
Zonder backpressure groeien wachtrijen onbeperkt, raakt het geheugen vol en bezwijkt de hele verwerkingsketen onder belasting.
Waarom Kafka helpt
Kafka fungeert zelf als een enorme persistente buffer tussen producenten en consumenten.
- Producenten schrijven in hun eigen tempo; consumenten lezen in hun eigen tempo.
- Het log vangt pieken op tot aan de bewaarlimiet.
Maar de buffer is eindig — je hebt nog steeds stroomregeling nodig.
Pullmodel voor consumenten
Kafka-consumenten halen gegevens op via poll(). Ze halen alleen op wat ze aankunnen, waardoor aan de leeszijde vanzelf backpressure ontstaat.
Als de verwerking traag is, poll je eenvoudig minder vaak — maar je moet de time-outs respecteren.
max.poll.records en het risico op herverdeling
Als een poll meer records oplevert dan je binnen max.poll.interval.ms kunt verwerken, gaat de broker ervan uit dat de consument niet meer actief is en start deze een herverdeling.
props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 200);
props.put(ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG, 300000);Partities pauzeren
Wanneer een downstream-doel overbelast is, pauzeer je het consumeren op specifieke partities en hervat je dit zodra er weer capaciteit is.
consumer.pause(Collections.singletonList(
new TopicPartition("orders", 0)));
// later
consumer.resume(Collections.singletonList(
new TopicPartition("orders", 0)));Backpressure aan de producentzijde
Aan de schrijfzijde zorgen buffer.memory en max.block.ms samen voor backpressure: wanneer de buffer vol is, blokkeert send() in plaats van gegevens te verwijderen, waardoor de producent wordt afgeremd tot het tempo van de broker.
Begrensde interne wachtrijen
Als je records aan werkthreads doorgeeft, gebruik dan begrensde wachtrijen.
Een onbegrensde wachtrij verbergt backpressure totdat het geheugen op is; een begrensde wachtrij blokkeert de poll-lus en geeft de druk door aan Kafka.
Opschalen versus bufferen
Backpressure koopt tijd, maar aanhoudende overbelasting vereist meer capaciteit:
- Voeg consumenten toe tot aan het aantal partities.
- Vergroot het aantal partities voor meer parallellisme.
- Reserveer vooraf capaciteit voor bekende piekbelasting.
Belasting afwerpen
Soms staat de juistheid toe dat je bij extreme belasting gegevens weglaat of minder vaak verzamelt — dit heet belasting afwerpen.
Stuur niet-kritieke gebeurtenissen naar een onderwerp met lagere prioriteit of neem een steekproef van metrieken. Doe dit alleen wanneer gegevensverlies acceptabel is.
Druk bewaken
Signalen dat backpressure actief is of niet goed werkt:
- Oplopende achterstand van consumenten.
- Toenemende
record-queue-timebij producenten. - Veelvuldige herverdelingen.
- Geheugendruk bij werkthreads.
Ontwerpprincipes
Bouw voor stabiliteit:
- Begrens altijd je buffers en wachtrijen.
- Laat trage verwerkingsfasen de eerdere fasen vertragen in plaats van ze te laten crashen.
- Combineer backpressure (korte termijn) met opschalen (lange termijn).
- Werp alleen belasting af wanneer dat acceptabel is.
Korte controle
Test je begrip van backpressure.
Samenvatting
Je hebt backpressure en stroomregeling op schaal geleerd.
- Kafka's persistente log en consumenten die gegevens ophalen bieden natuurlijke buffering.
- Pauzeren en hervatten, begrensde wachtrijen en buffer.memory geven druk veilig door.
- Schaal op bij aanhoudende belasting; werp alleen belasting af wanneer dat acceptabel is.
- Houd achterstand, wachtrijtijd en herverdelingen in de gaten.
Leer De basis van Apache Kafka en streamverwerking 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 “Backpressure en flow control op schaal” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Apache Kafka en streamverwerking, waaronder “Backpressure en flow control op schaal”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.
Wat leer ik in “Backpressure en flow control op schaal”?
Leer hoe backpressure streamverwerkingssystemen beschermt tegen overbelasting en welke technieken Kafka-gebaseerde pipelines gebruiken om stabiel te blijven bij piekbelasting. Je oefent met De basis van Apache Kafka en streamverwerking 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 De basis van Apache Kafka en streamverwerking te beginnen?
Ervaring vooraf is niet nodig. De basis van Apache Kafka en streamverwerking 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 4 van 4.
Hoe lang duurt de les “Backpressure en flow control op schaal”?
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 De basis van Apache Kafka en streamverwerking?
Ja. Elke les over De basis van Apache Kafka en streamverwerking 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
- Ontwerpen voor hoge doorvoer
- Disaster recovery en geo-replicatie
- Toekomstige trends in streamverwerking
- Backpressure en flow control op schaal