Advanced Spring Boot 4: Event-Driven Architecture (Kafka) · Lektion

Windowing und zustandsbehaftete Aggregationen in Kafka Streams

Lernen Sie, zeitfensterbasierte Aggregationen durchzuführen und State Stores in Kafka Streams zu verwalten, um laufende Zählungen, Summen und Metriken über Ereignisströme zu berechnen.

Lektion 4 von 413 Schritte

Windowing und zustandsbehaftete Aggregationen in Kafka Streams ist eine kostenlose Advanced Spring Boot 4: Event-Driven Architecture (Kafka)-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Advanced Spring Boot 4: Event-Driven Architecture (Kafka)-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Advanced Spring Boot 4: Event-Driven Architecture (Kafka)-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Stateful vs Stateless

Operations like map and filter are stateless. Aggregations such as counting or summing require state that persists across records.

Kafka Streams manages this state for you in local state stores.

Grouping a Stream

Before aggregating you group records by key with groupByKey or groupBy.

KGroupedStream<String, Order> grouped =
    orders.groupBy((key, order) -> order.getCustomerId());

Counting per Key

A simple aggregation: count orders per customer. The result is a KTable backed by a state store.

KTable<String, Long> counts = grouped.count();

General Aggregation

Use aggregate for custom accumulation. You provide an initializer and an adder function.

KTable<String, Double> totals = grouped.aggregate(
    () -> 0.0,
    (key, order, sum) -> sum + order.getAmount());

Introducing Windows

Often you want aggregations over a time window, e.g. orders in the last 5 minutes. Kafka Streams supports tumbling, hopping, and session windows.

Tumbling Windows

A tumbling window is fixed-size and non-overlapping. Each record belongs to exactly one window.

grouped
  .windowedBy(TimeWindows.ofSizeWithNoGrace(Duration.ofMinutes(5)))
  .count();

Hopping Windows

Hopping windows have a size and a smaller advance, so they overlap. A record can fall into multiple windows.

TimeWindows.ofSizeAndGrace(Duration.ofMinutes(5), Duration.ofSeconds(30))
           .advanceBy(Duration.ofMinutes(1));

Session Windows

Session windows group records separated by gaps of inactivity — ideal for user sessions where activity bursts then pauses.

grouped
  .windowedBy(SessionWindows.ofInactivityGapWithNoGrace(Duration.ofMinutes(10)))
  .count();

State Store Fault Tolerance

State stores are backed by compacted changelog topics in Kafka. If an instance fails, its state is rebuilt from the changelog on another instance.

Querying State Interactively

Interactive Queries let you read state store values directly from the application, exposing aggregations via a REST endpoint without an external database.

ReadOnlyKeyValueStore<String, Long> store =
    streams.store(StoreQueryParameters.fromNameAndType(
        "counts", QueryableStoreTypes.keyValueStore()));

Putting It Together

Windowed, stateful aggregations turn raw event streams into live metrics. Group by key, choose a window type, aggregate, and optionally expose the state via interactive queries.

Quick Check

Test your understanding of windowing.

Recap

You learned windowing and stateful aggregations.

  • Group with groupByKey before aggregating.
  • Use count or aggregate to build a KTable.
  • Tumbling, hopping, and session windows handle time differently.
  • State stores are fault-tolerant via changelog topics.
Kostenlos starten

Lerne Advanced Spring Boot 4: Event-Driven Architecture (Kafka) mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
12
Lektionen
48

Häufig gestellte Fragen

Ist die Lektion „Windowing und zustandsbehaftete Aggregationen in Kafka Streams“ kostenlos?

Ja — der vollständige Text von „Windowing und zustandsbehaftete Aggregationen in Kafka Streams“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Advanced Spring Boot 4: Event-Driven Architecture (Kafka)-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Advanced Spring Boot 4: Event-Driven Architecture (Kafka)-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Windowing und zustandsbehaftete Aggregationen in Kafka Streams“?

Lernen Sie, zeitfensterbasierte Aggregationen durchzuführen und State Stores in Kafka Streams zu verwalten, um laufende Zählungen, Summen und Metriken über Ereignisströme zu berechnen. Du übst Advanced Spring Boot 4: Event-Driven Architecture (Kafka) mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Advanced Spring Boot 4: Event-Driven Architecture (Kafka) zu starten?

Keine Vorkenntnisse erforderlich. Advanced Spring Boot 4: Event-Driven Architecture (Kafka) auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Windowing und zustandsbehaftete Aggregationen in Kafka Streams“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Advanced Spring Boot 4: Event-Driven Architecture (Kafka)-Lektion Code schreiben und ausführen?

Ja. Jede Advanced Spring Boot 4: Event-Driven Architecture (Kafka)-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Einführung in Kafka Streams
  2. Stream-Verarbeitung mit KStream und KTable
  3. Eine einfache Stream-Anwendung erstellen
  4. Windowing und zustandsbehaftete Aggregationen in Kafka Streams
← Zurück zu Advanced Spring Boot 4: Event-Driven Architecture (Kafka)