Commit-loggen: så lagrar Kafka data
Lär Er hur Kafka lagrar meddelanden som en append-only commit-logg, hur offsets och kvarhållning fungerar och varför denna utformning gör Kafka snabbt och hållbart.
Commit-loggen: så lagrar Kafka data är en gratis lektion i Grunderna i Apache Kafka och strömbearbetning på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Grunderna i Apache Kafka och strömbearbetning, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i Apache Kafka och strömbearbetning innehåller totalt 4 lektioner.
Kafka är en logg
I grunden är Kafka en distribuerad, append-only commit-logg. Producenter lägger till data i slutet, och data ändras aldrig på plats – det är hemligheten bakom Kafkas snabbhet och hållbarhet.
Skrivningar som bara lägger till data
Varje post skrivs sekventiellt sist i en partitions logg. Sekventiella diskskrivningar är mycket snabbare än slumpmässiga skrivningar och ger hög genomströmning även på billiga diskar.
Offseten
Varje post får en monotont ökande offset – dess position i partitionen. Offsets är unika inom en partition och återanvänds aldrig.
Partition 0: [off 0][off 1][off 2][off 3] -> next write off 4Läsningar raderar inte data
Till skillnad från en kö raderas en post inte när den konsumeras. Många konsumenter kan läsa samma logg oberoende av varandra, och varje konsument håller reda på sin egen offset.
Loggsegment
En partitionslogg delas upp i segment-filer på disken. Endast det aktiva segmentet skrivs till; äldre segment är oföränderliga och kan raderas eller kompakteras.
00000000000000000000.log
00000000000000010000.logTidsbaserad retention
Kafka behåller data under en konfigurerbar tidsperiod, oavsett om den har konsumerats eller inte. Standardvärdet för retention är 7 dagar.
retention.ms=604800000Storleksbaserad retention
Ni kan även begränsa en partition efter storlek. Den gräns som nås först – tid eller bytes – utlöser radering av de äldsta segmenten.
retention.bytes=1073741824Loggkompaktering
I stället för att radera data baserat på ålder behåller kompaktering endast den senaste posten per nyckel – perfekt för changelog-topics där ni bara vill ha varje nyckels aktuella värde.
cleanup.policy=compactLäsningar utan kopiering
Kafka skickar läsningar direkt från operativsystemets page cache till nätverket med hjälp av zero-copy och hoppar därmed över extra minneskopieringar. Det är ytterligare en viktig anledning till att konsumtionen går så snabbt.
Hållbarhet genom flush och repliker
Poster är hållbara eftersom de skrivs till disk och replikeras till andra brokers. Även om operativsystemets cache går förlorad bevarar replikerna data.
Sätta ihop delarna
Commit-loggen förklarar Kafkas egenskaper: sekventiella skrivningar för snabbhet, offsets för läsningar som kan spelas upp igen, retention och kompaktering för lagring samt replikering för hållbarhet.
Snabb kontroll
Testa er förståelse av commit-loggen.
Sammanfattning
Ni har lärt er hur Kafka lagrar data: i en append-only commit-logg med stabila offsets, läsningar som inte raderar data, retention tillsammans med kompaktering samt replikering för hållbarhet.
Lär dig Grunderna i Apache Kafka och strömbearbetning 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 ”Commit-loggen: så lagrar Kafka data” gratis?
Ja – hela texten till ”Commit-loggen: så lagrar Kafka data” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Grunderna i Apache Kafka och strömbearbetning, kan Ni uppgradera till CoddyKit PRO. Kursen i Grunderna i Apache Kafka och strömbearbetning innehåller totalt 4 lektioner.
Vad lär jag mig i ”Commit-loggen: så lagrar Kafka data”?
Lär Er hur Kafka lagrar meddelanden som en append-only commit-logg, hur offsets och kvarhållning fungerar och varför denna utformning gör Kafka snabbt och hållbart. Ni övar på Grunderna i Apache Kafka och strömbearbetning 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 Grunderna i Apache Kafka och strömbearbetning?
Du behöver inga förkunskaper. Utbildningen i Grunderna i Apache Kafka och strömbearbetning 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 4 av 4.
Hur lång tid tar lektionen ”Commit-loggen: så lagrar Kafka data”?
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 Grunderna i Apache Kafka och strömbearbetning-lektionen?
Ja. Varje Grunderna i Apache Kafka och strömbearbetning-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
- Vad är Apache Kafka?
- Kärnkoncept i Kafka: brokers och topics
- Konfigurera Kafka lokalt
- Commit-loggen: så lagrar Kafka data