Rebalance listeners og statisk medlemskap
Lær hvordan rebalansering av consumer groups forstyrrer behandlingen, og hvordan rebalance listeners og statisk medlemskap minimerer nedetid og tap av tilstand.
Rebalance listeners og statisk medlemskap er en gratis leksjon i Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka) på CoddyKit. Dette er leksjon 4 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.
Hva utløser en rebalansering
En rebalansering fordeler partisjoner på nytt mellom konsumentene i en gruppe. Det skjer når en konsument blir med, forlater gruppen, krasjer eller tidsavbruddet for økten utløper.
Under en rebalansering settes behandlingen på pause i hele gruppen.
Kostnaden ved rebalansering
Hyppige rebalanseringer reduserer gjennomstrømningen: Partisjoner trekkes tilbake og fordeles på nytt, arbeid som pågår kan bli behandlet på nytt, og lokale cacher blir ugyldige.
Avanserte konsumenter arbeider aktivt for å minimere og håndtere rebalanseringer.
Håndteringsfunksjoner for rebalansering
En ConsumerRebalanceListener gir deg to tilbakekall:
onPartitionsRevoked– kalles før partisjoner tas bort.onPartitionsAssigned– kalles etter at nye partisjoner er tildelt.
Bekrefte ved tilbakekalling
Bruk onPartitionsRevoked til å bekrefte offsets for arbeid som er fullført så langt. Da unngår du duplikatbehandling etter omfordelingen.
public void onPartitionsRevoked(Collection<TopicPartition> parts) {
consumer.commitSync(currentOffsets);
}Koble det inn i Spring
I Spring Kafka implementerer du ConsumerAwareRebalanceListener og angir den i container-egenskapene.
factory.getContainerProperties()
.setConsumerRebalanceListener(myRebalanceListener);Statisk medlemskap
Statisk medlemskap tildeler hver konsument en stabil group.instance.id. Ved en kort omstart beholder broker-en partisjonene i stedet for å utløse en rebalansering.
spring:
kafka:
consumer:
properties:
group.instance.id: consumer-pod-1Tidsavbrudd for økt og heartbeat
Statisk medlemskap er avhengig av session.timeout.ms. Hvis en konsument kobler seg til igjen innenfor øktens tidsvindu med samme instans-ID, skjer det ingen rebalansering.
session.timeout.ms: 45000
heartbeat.interval.ms: 3000Kooperativ rebalansering
CooperativeStickyAssignor fordeler bare partisjonene som må flyttes, i stedet for å trekke tilbake alle («stop-the-world»). Dette reduserer virkningen av rebalanseringen betydelig.
partition.assignment.strategy: org.apache.kafka.clients.consumer.CooperativeStickyAssignorUnngå tidsavbrudd ved polling
Hvis behandlingen av en batch overskrider max.poll.interval.ms, antar broker-en at konsumenten er død og starter en rebalansering. Begrens arbeidet per polling eller øk intervallet.
Kombinere strategier
For robuste konsumenter kan du kombinere statisk medlemskap (unngå unødvendige omstarter), kooperativ rebalansering (mindre flytting) og en lytter for rebalansering (ryddige offset-bekreftelser).
Slik henger det sammen
Rebalanseringer er uunngåelige, men kan kontrolleres. Lyttere lar deg bekrefte offsets på en ryddig måte, statisk medlemskap unngår unødvendige rebalanseringer ved omstart, og kooperativ tildeling begrenser forstyrrelsene.
Kjapp sjekk
Test forståelsen din av rebalansering.
Oppsummering
Du har lært avansert håndtering av rebalansering.
- Rebalanseringer setter behandlingen på pause og kan føre til at arbeid behandles på nytt.
- Lyttere for rebalansering lar deg bekrefte offsets ved tilbakekalling.
- Statisk medlemskap unngår rebalanseringer ved korte omstarter.
- Kooperativ tildeling reduserer forstyrrelser som stopper hele systemet.
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 «Rebalance listeners og statisk medlemskap» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Avansert Spring Boot 4: hendelsesdrevet arkitektur (Kafka), inkludert «Rebalance listeners og statisk medlemskap», 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 «Rebalance listeners og statisk medlemskap»?
Lær hvordan rebalansering av consumer groups forstyrrer behandlingen, og hvordan rebalance listeners og statisk medlemskap minimerer nedetid og tap av tilstand. 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 4 av 4.
Hvor lang tid tar leksjonen «Rebalance listeners og statisk medlemskap»?
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
- Manuell offset-commit
- Sette forbrukere på pause og gjenoppta dem
- Samtidighet og trådhåndtering
- Rebalance listeners og statisk medlemskap