Redis-caching og meddelelser (Pub/Sub, Streams) · Lektion

Introduktion til consumer groups

Forstå, hvordan consumer groups gør det muligt for flere consumers at behandle en stream samarbejdende og pålideligt.

Lektion 1 af 411 trin

Introduktion til consumer groups er en gratis Redis-caching og meddelelser (Pub/Sub, Streams)-lektion på CoddyKit. Dette er lektion 1 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 Redis-caching og meddelelser (Pub/Sub, Streams), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Redis-caching og meddelelser (Pub/Sub, Streams)-kurset indeholder 4 lektioner i alt.

Hvad er forbrugergrupper?

Redis Streams er effektive til logføring og hændelseskildeindlæsning. Men hvad nu, hvis flere programmer eller instanser skal behandle de samme Stream-data uden at udføre det samme arbejde flere gange?

Det er her, forbrugergrupper kommer ind i billedet. De er en central funktion i Redis Streams, der er udviklet til pålidelig og delt meddelelsesbehandling.

Udfordringen: Flere læsere

Forestil dig to tjenester, Service A og Service B, der begge skal behandle hver ny ordre fra en orders_stream.

Hvis begge tjenester blot bruger XREAD, modtager og behandler de begge alle meddelelser, hvilket fører til dobbeltarbejde eller inkonsistente tilstande.

  • Hvordan ved de, hvilke meddelelser der allerede er behandlet?
  • Hvordan deler de arbejdsbyrden?

Løsning på delt Stream-behandling

Forbrugergrupper gør det muligt for flere klienter (forbrugere) at læse fra den samme Redis Stream i fællesskab.

De sikrer, at:

  • Hver meddelelse kun leveres til én forbruger i gruppen.
  • Tilstanden (hvilke meddelelser der afventer behandling, og hvilke der er bekræftet) administreres af Redis.
  • Forbrugere kan genoprette forbindelsen og fortsætte behandlingen fra det sted, hvor de slap.

Vigtige begreber: Gruppe, forbruger, PEL

Lad os definere de centrale dele af en forbrugergruppe:

  • Stream: Den Redis Stream, der indeholder meddelelserne.
  • Forbrugergruppe: En logisk gruppe af forbrugere, der behandler en stream.
  • Forbruger: En individuel klientinstans i en gruppe.
  • Pending Entry List (PEL): En liste, som Redis vedligeholder for hver forbruger, og som holder styr på meddelelser, der er leveret, men endnu ikke bekræftet.

Opsætning af din første gruppe

Før forbrugere kan tilslutte sig, skal der oprettes en forbrugergruppe på en bestemt stream. Vi bruger kommandoen XGROUP CREATE.

Indstillingen MKSTREAM opretter automatisk streamen, hvis den ikke allerede findes.

XGROUP CREATE my_stream my_group 0 MKSTREAM

Udfyldning af streamen

Lad os tilføje nogle beskeder til vores my_stream, så vi har noget at læse. Husk, at XADD bruges til at tilføje poster til en stream.

XADD my_stream * sensor_id 1 temp 25.5
XADD my_stream * sensor_id 2 temp 24.9
XADD my_stream * sensor_id 1 temp 26.1

Forbrugere slutter sig til gruppen

Forbrugere læser fra en gruppe ved hjælp af kommandoen XREADGROUP. Du angiver gruppens navn, forbrugerens navn og det stream-id, som læsningen skal begynde fra.

Det særlige id > betyder "læs kun nye, ulæste beskeder, som endnu ikke er leveret til nogen anden forbruger i denne gruppe".

XREADGROUP GROUP my_group consumer1 COUNT 1 STREAMS my_stream >

Bekræft behandling af beskeder (XACK)

Når en forbruger har behandlet en besked, skal den bekræfte det ved hjælp af XACK. Det fortæller Redis, at beskeden er behandlet og kan fjernes fra forbrugerens liste over ventende poster (PEL).

Dette er afgørende for pålideligheden og forhindrer, at beskeder leveres igen, hvis en forbruger går ned.

XACK my_stream my_group 1678881234567-0

Hvorfor XACK er vigtigt

Det er vigtigt at bekræfte beskeder af to hovedårsager:

  • Pålidelighed: Hvis en forbruger fejler, før beskeden er bekræftet, forbliver beskeden i dens PEL og kan overtages af en anden forbruger senere.
  • Ressourcestyring: Ikke-bekræftede beskeder bliver i PEL og bruger hukommelse. Bekræftelser holder PEL ren og effektiv.

Grundlæggende om forbrugergrupper

Hvilken Redis-kommando bruges til at oprette en ny forbrugergruppe til en stream?

Opsummering: Forbrugergrupper

I denne lektion har du lært om Redis-forbrugergrupper, og hvordan de gør det muligt for flere forbrugere pålideligt at behandle beskeder fra én stream, så hver besked kun behandles én gang.

Du forstår nu rollerne for grupper og forbrugere samt listen over ventende poster (PEL), og hvordan du bruger XGROUP CREATE, XREADGROUP og XACK.

Derefter går vi i dybden med implementering af logik til forbrugergrupper og håndtering af ventende beskeder!

Gratis at komme i gang

Lær Redis-caching og meddelelser (Pub/Sub, Streams) 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 “Introduktion til consumer groups” gratis?

Ja — alle 3 lektioner i læringssporet Redis-caching og meddelelser (Pub/Sub, Streams), inklusive “Introduktion til consumer groups”, 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. Redis-caching og meddelelser (Pub/Sub, Streams)-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Introduktion til consumer groups”?

Forstå, hvordan consumer groups gør det muligt for flere consumers at behandle en stream samarbejdende og pålideligt. Du øver dig i Redis-caching og meddelelser (Pub/Sub, Streams) 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å Redis-caching og meddelelser (Pub/Sub, Streams)?

Der kræves ingen tidligere erfaring. Redis-caching og meddelelser (Pub/Sub, Streams) 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 1 af 4.

Hvor lang tid tager lektionen “Introduktion til consumer groups”?

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 Redis-caching og meddelelser (Pub/Sub, Streams)-lektion?

Ja. Alle Redis-caching og meddelelser (Pub/Sub, Streams)-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

  1. Introduktion til consumer groups
  2. Implementering af logik til consumer groups
  3. Håndtering af ventende meddelelser og fejl
  4. Overvågning af consumer group-lag
← Tilbage til Redis-caching og meddelelser (Pub/Sub, Streams)