.map() și .mapValues() în Kafka Streams în Apache Kafka

Transformă conținutul mesajelor din flux; mapValues păstrează cheia originală și evită repartiționarea costisitoare.

Sintaxă
stream.mapValues(val -> nouaValoare); stream.map((k, v) -> KeyValue.pair(nouaCheie, nouaVal));

Diferența critică între .map() și .mapValues()

În Kafka Streams, modificarea cheii unui mesaj determină automat necesitatea unei re-partiționări (re-keying) prin intermediul unui topic intern generat automat, implicând costuri de rețea și I/O pe disc.

  • .mapValues(): Modifică exclusiv payload-ul mesajului lăsând cheia intactă. Nu generează repartiționare, fiind extrem de eficient.
  • .map(): Poate modifica atât cheia cât și valoarea. Va forța repartiționarea automată dacă urmează operații de agregare sau join.
Exemplu Concret: Utilizarea mapValues pentru anonimizare
KStream<String, Utilizator> utilizatoriAnonimi = streamUtilizatori.mapValues(user -> {
    user.setParolaHash(null);
    user.setEmail(maskEmail(user.getEmail()));
    return user;
});
Comunitate & Schimb de cunoștințe

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

Ai o nelămurire despre utilizarea comenzii .map() și .mapValues() î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.