Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) · leksjon

Introduksjon til Kafka Streams

Få en oversikt over Kafka Streams-biblioteket, formålet med det og hvordan det gjør det mulig å bygge applikasjoner for kontinuerlig databehandling.

Leksjon 1 av 411 trinn

Introduksjon til Kafka Streams er en gratis leksjon i Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) inneholder totalt 4 leksjoner.

Sanntidsdata: Strømming

Se for deg data som en kontinuerlig strøm, omtrent som en elv. Strømbehandling handler om å analysere og reagere på disse dataene idet de ankommer, i sanntid.

I motsetning til batchbehandling, som håndterer data i store, faste grupper (som en innsjø), arbeider strømbehandling med individuelle datapunkter eller små datavinduer etter hvert som de genereres.

Møt Kafka Streams

Kafka Streams er et klientbibliotek for å bygge kraftige applikasjoner for strømbehandling. Det er en integrert del av Apache Kafka-økosystemet.

Det lar deg behandle data som er lagret i Kafka-emner, utføre transformasjoner og aggregeringer, og deretter skrive resultatene tilbake til Kafka eller eksterne systemer.

Fordeler med Kafka Streams

Kafka Streams gjør det enklere å bygge apper for strømbehandling ved å tilby:

  • Ingen separat klynge: Det kjører direkte i applikasjonen din, ikke på en dedikert behandlingsklynge.
  • Skalerbarhet: Arver Kafkas distribuerte natur og skalerer enkelt med partisjoner.
  • Feiltoleranse: Håndterer feil og gjenoppretter tilstand automatisk.
  • Utviklervennlighet: Tilbyr et høynivå-API for vanlige operasjoner.

Strømmer og records forklart

I Kafka Streams flyter data som en strøm, som er en ubegrenset, ordnet og avspillbar sekvens av datarecords.

Hver record er et enkelt nøkkel-verdi-par. For eksempel kan en bruker-ID være nøkkelen, mens en brukerhandling (som «logget inn») kan være verdien.

Bygge strømbehandlingsapplikasjoner

En applikasjon som er bygget med Kafka Streams, kalles ofte en strømprosessor. Den leser inndatastrømmer fra ett eller flere Kafka-emner, behandler dataene og kan produsere utdatastrømmer til andre Kafka-emner.

Disse applikasjonene kan utføre ulike operasjoner, fra enkel filtrering til komplekse tilstandsfulle aggregeringer.

Grunnleggende oppsett av strømmer

La oss se på det aller minste som kreves for å kjøre en Kafka Streams-applikasjon. Du trenger noen konfigurasjoner og en StreamsBuilder.

Dette eksempelet setter opp den grunnleggende strukturen, men utfører ingen faktisk databehandling ennå. Det definerer bare «tegningen» for strøm-applikasjonen din.

import org.apache.kafka.streams.KafkaStreams;
import org.apache.kafka.streams.StreamsBuilder;
import org.apache.kafka.streams.StreamsConfig;
import org.apache.kafka.common.serialization.Serdes;

import java.util.Properties;

public class BasicStreamApp {
  public static void main(String[] args) {
    Properties props = new Properties();
    props.put(StreamsConfig.APPLICATION_ID_CONFIG, "intro-app");
    props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
    props.put(StreamsConfig.DEFAULT_KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass());
    props.put(StreamsConfig.DEFAULT_VALUE_SERDE_CLASS_CONFIG, Serdes.String().getClass());

    StreamsBuilder builder = new StreamsBuilder();
    // No actual processing logic here yet for simplicity

    KafkaStreams streams = new KafkaStreams(builder.build(), props);
    streams.start();

    // Add shutdown hook to close the stream gracefully
    Runtime.getRuntime().addShutdownHook(new Thread(streams::close));
    System.out.println("Kafka Streams application started. Press Ctrl+C to stop.");
  }
}

Viktige strøminnstillinger

Objektet Properties inneholder viktige innstillinger for Kafka Streams-applikasjonen din:

  • APPLICATION_ID_CONFIG: Unik ID for appen din i Kafka-klyngen.
  • BOOTSTRAP_SERVERS_CONFIG: Liste over Kafka-brokere som applikasjonen skal koble til.
  • DEFAULT_KEY_SERDE_CLASS_CONFIG: Hvordan nøkler serialiseres/deserialiseres.
  • DEFAULT_VALUE_SERDE_CLASS_CONFIG: Hvordan verdier serialiseres/deserialiseres.

Forstå Serdes

Serdes (serialiserer/deserialiserer) er avgjørende. Kafka forstår bare bytes, så applikasjonen din må konvertere Java-objekter (som Strings eller Integers) til bytes før de sendes til Kafka, og konvertere bytes tilbake til objekter når de konsumeres.

Kafka Streams tilbyr innebygde Serdes for vanlige typer som String, Long og Integer via Serdes.String(), Serdes.Long() osv.

Der Kafka Streams utmerker seg

Kafka Streams passer utmerket til mange sanntidsscenarioer:

  • Sanntidsanalyse: Overvåkingsdashbord og svindeloppdagelse.
  • Datatransformasjon: Rensing, beriking og omstrukturering av datastrømmer.
  • Hendelsesdrevne mikrotjenester: Bygging av reaktive tjenester som kommuniserer via hendelser.
  • ETL-pipelines: Kontinuerlig uthenting, transformasjon og lasting av data.

Kort kontroll

Basert på det du har lært, hva er en viktig egenskap ved Kafka Streams?

Oppsummering og neste steg

Godt jobbet! De har tatt Deres første steg inn i Kafka Streams.

  • Vi definerte strømbehandling og introduserte Kafka Streams som et kraftig bibliotek.
  • Vi utforsket fordelene, som skalerbarhet og feiltoleranse.
  • De ble kjent med de grunnleggende begrepene strømmer, poster og viktige konfigurasjoner, inkludert Serdes.

Deretter skal vi gå dypere inn i kjerne-API-ene: KStream og KTable, slik at vi kan begynne å bygge faktiske datatransformasjoner!

Gratis å komme i gang

Lær deg Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Introduksjon til Kafka Streams» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka), inkludert «Introduksjon til Kafka Streams», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) inneholder totalt 4 leksjoner.

Hva lærer jeg i «Introduksjon til Kafka Streams»?

Få en oversikt over Kafka Streams-biblioteket, formålet med det og hvordan det gjør det mulig å bygge applikasjoner for kontinuerlig databehandling. Du øver på Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka)?

Ingen tidligere erfaring er nødvendig. Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Introduksjon til Kafka Streams»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka)-leksjonen?

Ja. Alle Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til Kafka Streams
  2. Strømbehandling med KStream og KTable
  3. Bygging av en enkel strømmeapplikasjon
  4. Vindusbehandling og tilstandsfulle aggregasjoner i Kafka Streams
← Tilbake til Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka)