Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) · Lektion

Konfigurera lokal Kafka med Docker

Lär er att snabbt konfigurera ett lokalt Kafka-kluster med Docker Compose som en sandlåda för utveckling och testning.

Lektion 3 av 411 steg

Konfigurera lokal Kafka med Docker är en gratis lektion i Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) innehåller totalt 4 lektioner.

Lokal Kafka: er utvecklingssandlåda

När ni bygger applikationer som använder Apache Kafka behöver ni ett Kafka-kluster att ansluta till. För utveckling och testning är det idealiskt att konfigurera ett lokalt kluster.

Det ger er en säker och isolerad miljö där ni kan experimentera utan att påverka produktionssystem. I den här lektionen får ni vägledning genom en enkel konfiguration med Docker.

Grunderna i Docker och Docker Compose

Docker är en plattform för att utveckla, leverera och köra applikationer i containrar. Containrar är lätta, portabla och självtillräckliga enheter.

Docker Compose är ett verktyg för att definiera och köra Docker-applikationer med flera containrar. Ni använder en YAML-fil för att konfigurera applikationens tjänster och skapar och startar sedan alla med ett enda kommando.

Viktiga lokala Kafka-komponenter

Ett minimalt Kafka-kluster behöver två huvudkomponenter för att fungera:

  • Zookeeper: Denna tjänst hanterar Kafka-brokers och ansvarar för ledarval, konfiguration och samordning. Kafka förlitar sig på Zookeeper för sitt driftstillstånd.
  • Kafka Broker: Detta är kärnservern som lagrar topics, hanterar produktion och konsumtion av meddelanden samt replikerar data. Vanligtvis kör ni minst en broker.

Definiera era tjänster med YAML

Vi definierar vår Kafka-konfiguration med en docker-compose.yml-fil. Denna fil talar om för Docker Compose vilka tjänster som ska köras, vilka avbildningar som ska användas och hur de ska konfigureras och anslutas till nätverket.

Varje tjänst i filen motsvarar en container som kommer att startas. Låt oss börja bygga den steg för steg.

Zookeeper i Docker Compose

Först definierar vi Zookeeper-tjänsten. Vi använder en standardavbildning av Zookeeper och exponerar dess standardport för klienter.

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

Här mappar ports: "2181:2181" containerns port 2181 till värdmaskinens port 2181.

Kafka-broker i Docker Compose

Nästa steg är att lägga till Kafka-brokerns tjänst. Den behöver veta hur den ska ansluta till Zookeeper och exponerar även egna portar för 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äkerställer att Zookeeper startar före Kafka.

Er kompletta Kafka-konfigurationsfil

När båda tjänsterna kombineras ser er docker-compose.yml-fil ut så här:

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

Spara detta innehåll i en fil med namnet docker-compose.yml i en tom katalog.

Starta ert Kafka-kluster

När filen docker-compose.yml är klar går ni till dess katalog i terminalen. Använd sedan följande kommando för att starta Kafka-klustret:

docker-compose up -d
  • up: Bygger, (åter)skapar, startar och ansluter till containrar för en tjänst.
  • -d: Kör containrar i frikopplat läge (i bakgrunden).

Docker hämtar avbildningarna (om de inte redan finns) och startar först Zookeeper och sedan Kafka.

Bekräfta att Kafka körs

När ni har kört docker-compose up -d kan ni kontrollera att tjänsterna körs korrekt:

  • docker ps: Visar alla Docker-containrar som körs. Ni bör se zookeeper och kafka.
  • docker logs kafka: Visar loggarna för Kafka-containern. Leta efter meddelanden som visar att den startade korrekt, till exempel "started (kafka.server.KafkaServer)".

Använd docker-compose down för att stoppa och ta bort containrarna.

Kontroll av Docker Compose-kommandot

Ni har precis skapat en docker-compose.yml-fil och vill starta Kafka-klustret i bakgrunden. Vilket kommando ska ni använda?

Repetition: lokal Kafka med Docker

Grattis! Ni har lärt er att konfigurera ett lokalt Kafka-kluster med Docker Compose. Här är en kort sammanfattning:

  • Lokal Kafka ger er en isolerad utvecklingsmiljö.
  • Docker Compose använder en docker-compose.yml-fil för att definiera appar med flera containrar.
  • En minimal Kafka-konfiguration kräver Zookeeper och en Kafka Broker.
  • docker-compose.yml anger avbildningar, portar och miljövariabler.
  • Använd docker-compose up -d för att starta klustret och docker-compose down för att stoppa det.

Nu har ni en sandlåda där ni kan bygga era Spring Boot Kafka-applikationer!

Gratis att börja

Lär dig Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Konfigurera lokal Kafka med Docker” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka), inklusive ”Konfigurera lokal Kafka med Docker”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) innehåller totalt 4 lektioner.

Vad lär jag mig i ”Konfigurera lokal Kafka med Docker”?

Lär er att snabbt konfigurera ett lokalt Kafka-kluster med Docker Compose som en sandlåda för utveckling och testning. Ni övar på Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka)?

Du behöver inga förkunskaper. Utbildningen i Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Konfigurera lokal Kafka med Docker”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka)-lektionen?

Ja. Varje Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Översikt över Kafka-arkitekturen
  2. Topics, partitioner och offsets
  3. Konfigurera lokal Kafka med Docker
  4. Consumer groups och rebalansering
← Tillbaka till Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka)