Rebalance listeners och statiskt medlemskap
Lär Er hur rebalanseringar av consumer groups stör bearbetningen och hur rebalance listeners tillsammans med statiskt medlemskap minimerar driftstopp och tillståndsförlust.
Rebalance listeners och statiskt medlemskap är en gratis lektion i Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) på CoddyKit. Detta är lektion 4 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.
Vad utlöser en ombalansering
En ombalansering tilldelar om partitioner mellan konsumenter i en grupp. Det sker när en konsument ansluter, lämnar gruppen, kraschar eller när dess session löper ut.
Under en ombalansering pausas bearbetningen i hela gruppen.
Kostnaden för ombalansering
Frekventa ombalanseringar försämrar genomströmningen: partitioner återkallas och tilldelas på nytt, pågående arbete kan behöva bearbetas igen och lokala cacheminnen ogiltigförklaras.
Avancerade konsumenter minimerar och hanterar aktivt ombalanseringar.
Hookar för ombalanseringslyssnare
En ConsumerRebalanceListener ger er två callback-funktioner:
onPartitionsRevoked– anropas innan partitioner tas tillbaka.onPartitionsAssigned– anropas efter att nya partitioner har tilldelats.
Bekräfta vid återkallning
Använd onPartitionsRevoked för att bekräfta offsetvärden för arbete som har slutförts hittills och undvika dubbel bearbetning efter omtilldelning.
public void onPartitionsRevoked(Collection<TopicPartition> parts) {
consumer.commitSync(currentOffsets);
}Koppla in det i Spring
I Spring Kafka implementerar ni ConsumerAwareRebalanceListener och anger den i containerns egenskaper.
factory.getContainerProperties()
.setConsumerRebalanceListener(myRebalanceListener);Statisk medlemskap
Statiskt medlemskap tilldelar varje konsument ett stabilt group.instance.id. Vid en kort omstart behåller brokern dess partitioner i stället för att utlösa en ombalansering.
spring:
kafka:
consumer:
properties:
group.instance.id: consumer-pod-1Session- och heartbeat-timeouter
Statiskt medlemskap förlitar sig på session.timeout.ms. Om en konsument återansluter inom sessionsfönstret med samma instans-ID sker ingen ombalansering.
session.timeout.ms: 45000
heartbeat.interval.ms: 3000Kooperativ ombalansering
CooperativeStickyAssignor tilldelar endast om de partitioner som måste flyttas, i stället för att återkalla allt (stop-the-world). Det minskar ombalanseringens påverkan avsevärt.
partition.assignment.strategy: org.apache.kafka.clients.consumer.CooperativeStickyAssignorUndvika poll-timeouter
Om bearbetningen av ett batchöverskrider max.poll.interval.ms antar brokern att konsumenten har slutat fungera och genomför en ombalansering. Begränsa arbetet per poll eller höj intervallet.
Kombinera strategier
För motståndskraftiga konsumenter kan ni kombinera statiskt medlemskap (undvik omstartsrelaterade förändringar), kooperativ ombalansering (mindre flyttar) och en ombalanseringslyssnare (rena offsetbekräftelser).
Sätta ihop allt
Ombalanseringar går inte att undvika helt, men de går att kontrollera. Lyssnare låter er bekräfta offsetvärden på ett kontrollerat sätt, statiskt medlemskap undviker onödiga ombalanseringar vid omstarter och kooperativ tilldelning begränsar störningarna.
Snabbtest
Testa era kunskaper om ombalansering.
Sammanfattning
Ni har lärt er avancerad hantering av ombalansering.
- Ombalanseringar pausar bearbetningen och kan leda till att arbete bearbetas igen.
- Ombalanseringslyssnare låter er bekräfta offsetvärden vid återkallning.
- Statiskt medlemskap undviker ombalanseringar vid korta omstarter.
- Kooperativ tilldelning minskar störningar där hela världen stoppas.
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 ”Rebalance listeners och statiskt medlemskap” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka), inklusive ”Rebalance listeners och statiskt medlemskap”, 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 ”Rebalance listeners och statiskt medlemskap”?
Lär Er hur rebalanseringar av consumer groups stör bearbetningen och hur rebalance listeners tillsammans med statiskt medlemskap minimerar driftstopp och tillståndsförlust. 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 4 av 4.
Hur lång tid tar lektionen ”Rebalance listeners och statiskt medlemskap”?
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
- Manuell offset-bekräftelse
- Pausa och återuppta konsumenter
- Samtidighet och trådhantering
- Rebalance listeners och statiskt medlemskap