Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka) · Lektion

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.

Lektion 4 av 413 steg

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-1

Session- 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: 3000

Kooperativ 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.CooperativeStickyAssignor

Undvika 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.
Gratis att börja

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

  1. Manuell offset-bekräftelse
  2. Pausa och återuppta konsumenter
  3. Samtidighet och trådhantering
  4. Rebalance listeners och statiskt medlemskap
← Tillbaka till Avancerad Spring Boot 4: händelsestyrd arkitektur (Kafka)