0Pricing
Advanced Spring Boot 4: Event-Driven Architecture (Kafka) · Leçon

Fenêtrage et agrégations avec état dans Kafka Streams

Apprenez à effectuer des agrégations par fenêtres temporelles et à gérer les magasins d’état dans Kafka Streams pour calculer des décomptes, sommes et métriques cumulés sur des flux d’événements.

Fenêtrage et agrégations avec état dans Kafka Streams est une leçon Advanced Spring Boot 4: Event-Driven Architecture (Kafka) gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Advanced Spring Boot 4: Event-Driven Architecture (Kafka), et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Advanced Spring Boot 4: Event-Driven Architecture (Kafka) comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

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.

Questions Fréquemment Posées

La leçon « Fenêtrage et agrégations avec état dans Kafka Streams » est-elle gratuite ?

Oui — le texte complet de « Fenêtrage et agrégations avec état dans Kafka Streams » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Advanced Spring Boot 4: Event-Driven Architecture (Kafka), passe à CoddyKit PRO. Le cours Advanced Spring Boot 4: Event-Driven Architecture (Kafka) comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Fenêtrage et agrégations avec état dans Kafka Streams » ?

Apprenez à effectuer des agrégations par fenêtres temporelles et à gérer les magasins d’état dans Kafka Streams pour calculer des décomptes, sommes et métriques cumulés sur des flux d’événements. Tu pratiques Advanced Spring Boot 4: Event-Driven Architecture (Kafka) avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Advanced Spring Boot 4: Event-Driven Architecture (Kafka) ?

Aucune expérience préalable n'est requise. Advanced Spring Boot 4: Event-Driven Architecture (Kafka) sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Fenêtrage et agrégations avec état dans Kafka Streams » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Advanced Spring Boot 4: Event-Driven Architecture (Kafka) ?

Oui. Chaque leçon Advanced Spring Boot 4: Event-Driven Architecture (Kafka) inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Introduction à Kafka Streams
  2. Traitement par flux avec KStream et KTable
  3. Créer une application de flux simple
  4. Fenêtrage et agrégations avec état dans Kafka Streams
← Retour à Advanced Spring Boot 4: Event-Driven Architecture (Kafka)