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.
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: 2000Hä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:
- zookeeperdepends_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:
- zookeeperSpara 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 -dup: 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 sezookeeperochkafka.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.ymlanger avbildningar, portar och miljövariabler.- Använd
docker-compose up -dför att starta klustret ochdocker-compose downför att stoppa det.
Nu har ni en sandlåda där ni kan bygga era Spring Boot Kafka-applikationer!
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
- Översikt över Kafka-arkitekturen
- Topics, partitioner och offsets
- Konfigurera lokal Kafka med Docker
- Consumer groups och rebalansering