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.
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: 2000Her 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:
- zookeeperdepends_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:
- zookeeperLagre 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 -dup: 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 sezookeeperogkafka.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.ymlangir images, porter og miljøvariabler.- Bruk
docker-compose up -dfor å starte klyngen ogdocker-compose downfor å stoppe den.
Nå har du en sandkasse der du kan bygge Spring Boot Kafka-applikasjoner!
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
- Oversikt over Kafka-arkitekturen
- Topics, partisjoner og offsets
- Sette opp lokal Kafka med Docker
- Consumer groups og rebalansering