De basis van Apache Kafka en streamverwerking · Les

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.

Les 4 van 413 stappen

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-time bij 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.
Gratis beginnen

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

  1. Ontwerpen voor hoge doorvoer
  2. Disaster recovery en geo-replicatie
  3. Toekomstige trends in streamverwerking
  4. Backpressure en flow control op schaal
← Terug naar De basis van Apache Kafka en streamverwerking