.aggregate() și .reduce() în Kafka Streams în Apache Kafka

Calculează starea cumulativă a evenimentelor dintr-o partiție într-o valoare menținută în baza locală RocksDB.

Sintaxă
groupedStream.aggregate(() -> stareInitiala, (cheie, valoare, agregat) -> noulAgregat);

Cum funcționează agregările stateful

Metodele aggregate() și reduce() gestionează starea continuă a aplicației (State Store) folosind o bază de date încorporată RocksDB și un topic intern de changelog pentru recuperare rapidă în caz de crash.

  • .reduce(): Combină elementele de același tip (ex: însumarea a două valori numerice).
  • .aggregate(): Permite ca tipul rezultatului agregat să fie complet diferit de tipul mesajului de intrare (ex: construirea unui profil complex dintr-un flux de evenimente simple).
Exemplu Concret: Calculul sumei totale cheltuite per client
KTable<String, Double> totalCheltuit = streamPlati
    .groupByKey()
    .aggregate(
        () -> 0.0, // Valoarea de start
        (clientId, plata, sumaTotala) -> sumaTotala + plata.getValoare(),
        Materialized.with(Serdes.String(), Serdes.Double())
    );
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: .aggregate() și .reduce() în Kafka Streams

Ai o nelămurire despre utilizarea comenzii .aggregate() și .reduce() în Kafka Streams sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.