Windowing en stateful aggregaties in Kafka Streams
Leer tijdvensteraggregaties uit te voeren en state stores in Kafka Streams te beheren om lopende aantallen, sommen en metrics over eventstreams te berekenen.
Windowing en stateful aggregaties in Kafka Streams is een gratis Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka)-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 Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka) bevat in totaal 4 lessen.
Statusgebonden versus statusloos
Bewerkingen zoals map en filter zijn statusloos. Aggregaties zoals tellen of optellen vereisen status die tussen records blijft bestaan.
Kafka Streams beheert deze status voor u in lokale statusopslagplaatsen.
Een stream groeperen
Voordat u aggregeert, groepeert u records op sleutel met groupByKey of groupBy.
KGroupedStream<String, Order> grouped =
orders.groupBy((key, order) -> order.getCustomerId());Per sleutel tellen
Een eenvoudige aggregatie: het aantal bestellingen per klant tellen. Het resultaat is een KTable, ondersteund door een statusopslagplaats.
KTable<String, Long> counts = grouped.count();Algemene aggregatie
Gebruik aggregate voor aangepaste accumulatie. U levert een initialisatiefunctie en een optelfunctie.
KTable<String, Double> totals = grouped.aggregate(
() -> 0.0,
(key, order, sum) -> sum + order.getAmount());Tijdvensters introduceren
Vaak wilt u aggregaties over een tijdvenster, bijvoorbeeld bestellingen in de afgelopen 5 minuten. Kafka Streams ondersteunt kantelende, verschuivende en sessievensters.
Kantelende vensters
Een kantelend venster heeft een vaste grootte en overlapt niet met andere vensters. Elk record hoort precies bij één venster.
grouped
.windowedBy(TimeWindows.ofSizeWithNoGrace(Duration.ofMinutes(5)))
.count();Verschuivende vensters
Verschuivende vensters hebben een grootte en een kleinere verschuiving, waardoor ze elkaar overlappen. Een record kan in meerdere vensters vallen.
TimeWindows.ofSizeAndGrace(Duration.ofMinutes(5), Duration.ofSeconds(30))
.advanceBy(Duration.ofMinutes(1));Sessievensters
Sessievensters groeperen records die worden gescheiden door perioden van inactiviteit — ideaal voor gebruikerssessies waarin activiteit in uitbarstingen optreedt en daarna pauzeert.
grouped
.windowedBy(SessionWindows.ofInactivityGapWithNoGrace(Duration.ofMinutes(10)))
.count();Fouttolerantie van statusopslagplaatsen
Statusopslagplaatsen worden ondersteund door gecomprimeerde changelogonderwerpen in Kafka. Als een instantie uitvalt, wordt de status vanuit de changelog opnieuw opgebouwd op een andere instantie.
Status interactief opvragen
Met Interactive Queries kunt u statuswaarden rechtstreeks vanuit de applicatie lezen. Zo stelt u aggregaties beschikbaar via een REST-eindpunt zonder externe database.
ReadOnlyKeyValueStore<String, Long> store =
streams.store(StoreQueryParameters.fromNameAndType(
"counts", QueryableStoreTypes.keyValueStore()));Alles samenbrengen
Aggregaties met vensters en status veranderen onbewerkte gebeurtenisstreams in actuele metingen. Groepeer op sleutel, kies een type venster, aggregeer en stel de status desgewenst beschikbaar via interactieve query's.
Korte controle
Test uw begrip van werken met vensters.
Samenvatting
U hebt werken met vensters en statusgebonden aggregaties geleerd.
- Groepeer met
groupByKeyvoordat u aggregeert. - Gebruik
countofaggregateom een KTable op te bouwen. - Kantelende, verschuivende en sessievensters verwerken tijd op verschillende manieren.
- Statusopslagplaatsen zijn fouttolerant dankzij changelogonderwerpen.
Leer Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka) 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 “Windowing en stateful aggregaties in Kafka Streams” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka), waaronder “Windowing en stateful aggregaties in Kafka Streams”, 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 Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka) bevat in totaal 4 lessen.
Wat leer ik in “Windowing en stateful aggregaties in Kafka Streams”?
Leer tijdvensteraggregaties uit te voeren en state stores in Kafka Streams te beheren om lopende aantallen, sommen en metrics over eventstreams te berekenen. Je oefent met Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka) 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 Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka) te beginnen?
Ervaring vooraf is niet nodig. Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka) 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 “Windowing en stateful aggregaties in Kafka Streams”?
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 Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka)?
Ja. Elke les over Geavanceerd Spring Boot 4: gebeurtenisgestuurde architectuur (Kafka) 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
- Inleiding tot Kafka Streams
- Streamverwerking met KStream en KTable
- Een eenvoudige streamapplicatie bouwen
- Windowing en stateful aggregaties in Kafka Streams