Consumer groups og rebalancering
Forstå, hvordan Kafka-consumer groups skalerer forbruget, hvordan partitioner tildeles, og hvad der sker under en rebalance, med Spring Kafka for øje.
Consumer groups og rebalancering er en gratis Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka)-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka)-kurset indeholder 4 lektioner i alt.
Hvorfor forbrugergrupper?
En forbrugergruppe lader flere forbrugerinstanser dele arbejdet med at læse et topic. Kafka tildeler hver partition til præcis én forbruger i gruppen.
Gruppe-id
Forbrugere tilslutter sig en gruppe ved at dele et group.id. Kafka holder styr på offset-positionen pr. gruppe, så hver gruppe læser topic'et uafhængigt.
spring.kafka.consumer.group-id=order-servicePartitioner driver parallelitet
Antallet af partitioner fastsætter den maksimale parallelitet. Med fire partitioner kan højst fire forbrugere i en gruppe arbejde samtidigt.
topic orders: 4 partitions
group with 4 consumers -> 1 partition eachEkstra forbrugere er inaktive
Hvis en gruppe har flere forbrugere end partitioner, er de ekstra forbrugere inaktive. Skaler antallet af partitioner for at øge forbruget ud over den nuværende grænse.
6 consumers, 4 partitions -> 2 idleHvad udløser en omfordeling
En omfordeling tildeler partitioner på ny, når gruppens medlemskab ændres.
- En forbruger tilslutter sig eller forlader gruppen
- En forbruger anses for at være død
- Der tilføjes partitioner
Omkostninger ved omfordeling
Under en omfordeling stopper forbrugerne kortvarigt med at behandle data, mens partitionerne tildeles på ny. Hyppige omfordelinger reducerer gennemløbet.
Heartbeat-signaler og livstegn
Forbrugere sender heartbeat-signaler. Hvis de udebliver længere end session.timeout.ms, markeres en forbruger som død, og en omfordeling udløses.
session.timeout.ms = 10000
heartbeat.interval.ms = 3000Sundhed i poll-løkken
Hvis behandlingen mellem to poll-kald overskrider max.poll.interval.ms, fjernes forbrugeren. Begræns arbejdet pr. meddelelse, eller øg grænsen.
max.poll.interval.ms = 300000Commit af offsets
Offsets registrerer fremskridt pr. partition og pr. gruppe. Spring Kafka kan committe automatisk eller committe manuelt efter vellykket behandling for levering mindst én gang.
spring.kafka.consumer.enable-auto-commit=falseKooperativ omfordeling
Den kooperative protokol for omfordeling tildeler kun de partitioner, der skal flyttes, og undgår dermed en fuldstændig omfordeling, hvor alt stoppes.
partition.assignment.strategy=CooperativeStickyAssignorSpring Kafka-lyttere
En @KafkaListener tilslutter sig automatisk den konfigurerede gruppe; hvis du kører flere instanser af appen, skaleres gruppen uden ændringer i koden.
@KafkaListener(topics = "orders", groupId = "order-service")
void onOrder(Order o) { ... }Hurtigt tjek
Overvej paralleliteten.
Opsummering
Du har lært, at en forbrugergruppe deler et topic ved at tildele hver partition til én forbruger, så antallet af partitioner begrænser paralleliteten. Omfordelinger tildeler partitioner på ny, når medlemskabet ændres, og sætter behandlingen kortvarigt på pause; heartbeat-signaler og poll-intervaller styrer livstegn. Kooperativ omfordeling og manuelle offset-commits holder Spring Kafka-forbrugere effektive og pålidelige.
Lær Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka) med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Consumer groups og rebalancering” gratis?
Ja — alle 3 lektioner i læringssporet Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka), inklusive “Consumer groups og rebalancering”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka)-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Consumer groups og rebalancering”?
Forstå, hvordan Kafka-consumer groups skalerer forbruget, hvordan partitioner tildeles, og hvad der sker under en rebalance, med Spring Kafka for øje. Du øver dig i Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka) med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka)?
Der kræves ingen tidligere erfaring. Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka) på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Consumer groups og rebalancering”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka)-lektion?
Ja. Alle Avanceret Spring Boot 4: hændelsesdrevet arkitektur (Kafka)-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Oversigt over Kafka-arkitekturen
- Topics, partitioner og offsets
- Opsætning af lokal Kafka med Docker
- Consumer groups og rebalancering