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

Sette opp lokal Kafka med Docker

Lær å sette opp en lokal Kafka-klynge raskt ved hjelp av Docker Compose, som gir et sandkassemiljø for utvikling og testing.

Leksjon 3 av 411 trinn

Sette opp lokal Kafka med Docker er en gratis leksjon i Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) på CoddyKit. Dette er leksjon 3 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.

Lokal Kafka: Utviklingssandkassen din

Når du utvikler applikasjoner som bruker Apache Kafka, trenger du en Kafka-klynge å koble deg til. Til utvikling og testing er det ideelt å sette opp en lokal klynge.

Den gir deg et trygt og isolert miljø der du kan eksperimentere uten å påvirke produksjonssystemer. I denne leksjonen får du veiledning i hvordan du enkelt setter den opp med Docker.

Grunnleggende om Docker og Docker Compose

Docker er en plattform for utvikling, levering og kjøring av applikasjoner i containere. Containere er lette, portable og selvstendige enheter.

Docker Compose er et verktøy for å definere og kjøre Docker-applikasjoner med flere containere. Du bruker en YAML-fil til å konfigurere applikasjonens tjenester, og oppretter og starter deretter alle tjenestene med én enkelt kommando.

Viktige lokale Kafka-komponenter

En minimal Kafka-klynge trenger to hovedkomponenter for å fungere:

  • Zookeeper: Denne tjenesten administrerer Kafka-brokere og håndterer valg av leder, konfigurasjon og koordinering. Kafka er avhengig av Zookeeper for den operative tilstanden sin.
  • Kafka Broker: Dette er kjerneserveren som lagrer topics, håndterer produksjon og konsumering av meldinger og replikerer data. Vanligvis kjører du minst én broker.

Definer tjenestene dine med YAML

Vi definerer Kafka-oppsettet vårt ved hjelp av en docker-compose.yml-fil. Denne filen forteller Docker Compose hvilke tjenester som skal kjøres, hvilke images som skal brukes, og hvordan de skal konfigureres og kobles sammen i nettverket.

Hver tjeneste i filen representerer en container som skal startes. La oss bygge den trinn for trinn.

Zookeeper i Docker Compose

Først definerer vi Zookeeper-tjenesten. Vi bruker et standard Zookeeper-image og eksponerer standardklientporten.

version: '3.8'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.5.0
    container_name: zookeeper
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

Her mapper ports: "2181:2181" port 2181 i containeren til port 2181 på vertsmaskinen.

Kafka-broker i Docker Compose

Deretter legger vi til Kafka-broker-tjenesten. Den må vite hvordan den skal koble seg til Zookeeper, og eksponerer også egne porter for klienter.

  kafka:
    image: confluentinc/cp-kafka:7.5.0
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
    depends_on:
      - zookeeper

depends_on: zookeeper sørger for at Zookeeper starter før Kafka.

Den komplette Kafka-oppsettfilen

Når vi kombinerer begge tjenestene, ser docker-compose.yml-filen din slik ut:

version: '3.8'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.5.0
    container_name: zookeeper
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  kafka:
    image: confluentinc/cp-kafka:7.5.0
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
    depends_on:
      - zookeeper

Lagre dette innholdet i en fil med navnet docker-compose.yml i en tom katalog.

Start Kafka-klyngen din

Når docker-compose.yml-filen er klar, går du til katalogen den ligger i, i terminalen. Bruk deretter følgende kommando for å starte Kafka-klyngen:

docker-compose up -d
  • up: Bygger, oppretter eller oppretter på nytt, starter og kobler til containere for en tjeneste.
  • -d: Kjører containere i frakoblet modus (i bakgrunnen).

Docker laster ned images (hvis de ikke allerede finnes) og starter først Zookeeper og deretter Kafka.

Bekreft at Kafka kjører

Etter at du har kjørt docker-compose up -d, kan du kontrollere at tjenestene kjører som de skal:

  • docker ps: Viser alle Docker-containere som kjører. Du skal se zookeeper og kafka.
  • docker logs kafka: Viser loggene for Kafka-containeren. Se etter meldinger som viser at den startet uten feil, for eksempel «started (kafka.server.KafkaServer)».

Bruk docker-compose down for å stoppe og fjerne containerne.

Kontroller Docker Compose-kommandoen

Du har nettopp opprettet en docker-compose.yml-fil og vil starte Kafka-klyngen i bakgrunnen. Hvilken kommando skal du bruke?

Oppsummering: Lokal Kafka med Docker

Gratulerer! Du har lært hvordan du setter opp en lokal Kafka-klynge med Docker Compose. Her er en kort oppsummering:

  • Lokal Kafka gir deg et isolert utviklingsmiljø.
  • Docker Compose bruker en docker-compose.yml-fil til å definere applikasjoner med flere containere.
  • Et minimalt Kafka-oppsett krever Zookeeper og en Kafka Broker.
  • docker-compose.yml angir images, porter og miljøvariabler.
  • Bruk docker-compose up -d for å starte klyngen og docker-compose down for å stoppe den.

Nå har du en sandkasse der du kan bygge Spring Boot Kafka-applikasjoner!

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 «Sette opp lokal Kafka med Docker» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka), inkludert «Sette opp lokal Kafka med Docker», 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 «Sette opp lokal Kafka med Docker»?

Lær å sette opp en lokal Kafka-klynge raskt ved hjelp av Docker Compose, som gir et sandkassemiljø for utvikling og testing. 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 3 av 4.

Hvor lang tid tar leksjonen «Sette opp lokal Kafka med Docker»?

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. Oversikt over Kafka-arkitekturen
  2. Topics, partisjoner og offsets
  3. Sette opp lokal Kafka med Docker
  4. Consumer groups og rebalansering
← Tilbake til Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka)