Kennismaking met consumentengroepen
Krijg inzicht in hoe Consumer Groups meerdere consumers in staat stellen samen en betrouwbaar een stream te verwerken.
Kennismaking met consumentengroepen is een gratis Redis-caching en berichtenuitwisseling (Pub/Sub, Streams)-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Redis-caching en berichtenuitwisseling (Pub/Sub, Streams). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) bevat in totaal 4 lessen.
Wat zijn consumentengroepen?
Redis Streams zijn krachtig voor logboekregistratie en event sourcing. Maar wat als meerdere applicaties of instanties dezelfde streamgegevens moeten verwerken zonder dubbel werk te doen?
Daar komen consumentengroepen van pas. Dit is een kernfunctie van Redis Streams voor betrouwbare, gedeelde berichtverwerking.
De uitdaging: meerdere lezers
Stel je twee services voor, service A en service B, die allebei elke nieuwe bestelling uit een orders_stream moeten verwerken.
Als beide services eenvoudigweg XREAD gebruiken, ontvangen en verwerken ze allebei alle berichten. Dat leidt tot dubbel werk of inconsistente statussen.
- Hoe weten ze welke berichten al zijn verwerkt?
- Hoe verdelen ze het werk?
Gedeelde streamverwerking oplossen
Consumentengroepen bieden een manier waarop meerdere clients (consumenten) gezamenlijk uit dezelfde Redis Stream kunnen lezen.
Ze zorgen ervoor dat:
- Elk bericht aan slechts één consument binnen de groep wordt afgeleverd.
- De status (welke berichten in behandeling zijn en welke zijn bevestigd) door Redis wordt beheerd.
- Consumenten kunnen herstellen en doorgaan met verwerken vanaf het punt waar ze waren gebleven.
Belangrijke concepten: groep, consument en PEL
Laten we de belangrijkste onderdelen van een consumentengroep definiëren:
- Stream: de Redis Stream waarin de berichten staan.
- Consumentengroep: een logische groep consumenten die een stream verwerkt.
- Consument: een afzonderlijke clientinstantie binnen een groep.
- Pending Entry List (PEL): een lijst die Redis voor elke consument bijhoudt en waarin berichten worden bijgehouden die zijn afgeleverd maar nog niet zijn bevestigd.
Je eerste groep instellen
Voordat consumenten kunnen deelnemen, moet er een consumentengroep op een specifieke stream worden gemaakt. Hiervoor gebruiken we de opdracht XGROUP CREATE.
Met de optie MKSTREAM wordt de stream automatisch gemaakt als deze nog niet bestaat.
XGROUP CREATE my_stream my_group 0 MKSTREAMDe stream vullen
Voeg een paar berichten toe aan onze my_stream, zodat we iets hebben om te lezen. Denk eraan dat XADD de manier is om items aan een stream toe te voegen.
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.1Consumenten die aan de groep deelnemen
Consumenten lezen uit een groep met de opdracht XREADGROUP. Je geeft de groepsnaam, de naam van de consument en de stream-ID op vanaf waar het lezen moet beginnen.
De speciale ID > betekent: "lees alleen nieuwe, ongelezen berichten die nog niet aan een andere consument in deze groep zijn geleverd."
XREADGROUP GROUP my_group consumer1 COUNT 1 STREAMS my_stream >Berichtenverwerking bevestigen (XACK)
Nadat een consument een bericht heeft verwerkt, moet het dit bevestigen met XACK. Hiermee laat je Redis weten dat het bericht is afgehandeld en uit de lijst met openstaande items (PEL) van de consument kan worden verwijderd.
Dit is cruciaal voor de betrouwbaarheid en voorkomt dat berichten opnieuw worden geleverd als een consument vastloopt.
XACK my_stream my_group 1678881234567-0Waarom XACK belangrijk is
Het bevestigen van berichten is om twee belangrijke redenen essentieel:
- Betrouwbaarheid: Als een consument uitvalt voordat het bericht is bevestigd, blijft het bericht in de PEL staan en kan het later door een andere consument worden opgeëist.
- Hulpbronnenbeheer: Niet-bevestigde berichten blijven in de PEL staan en gebruiken geheugen. Door berichten te bevestigen, blijft de PEL schoon en efficiënt.
Basisprincipes van consumentengroepen
Welke Redis-opdracht gebruik je om een nieuwe consumentengroep voor een stream te maken?
Samenvatting: consumentengroepen
In deze les heb je geleerd wat consumentengroepen in Redis zijn en hoe ze meerdere consumenten in staat stellen om berichten uit één stream betrouwbaar te verwerken, waarbij elk bericht maar één keer wordt afgehandeld.
Je begrijpt nu de rollen van groepen en consumenten, de lijst met openstaande items (PEL) en het gebruik van XGROUP CREATE, XREADGROUP en XACK.
Vervolgens gaan we dieper in op het implementeren van logica voor consumentengroepen en het afhandelen van openstaande berichten!
Leer Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Kennismaking met consumentengroepen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Redis-caching en berichtenuitwisseling (Pub/Sub, Streams), waaronder “Kennismaking met consumentengroepen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) bevat in totaal 4 lessen.
Wat leer ik in “Kennismaking met consumentengroepen”?
Krijg inzicht in hoe Consumer Groups meerdere consumers in staat stellen samen en betrouwbaar een stream te verwerken. Je oefent met Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) te beginnen?
Ervaring vooraf is niet nodig. Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Kennismaking met consumentengroepen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Redis-caching en berichtenuitwisseling (Pub/Sub, Streams)?
Ja. Elke les over Redis-caching en berichtenuitwisseling (Pub/Sub, Streams) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Kennismaking met consumentengroepen
- Logica voor consumentengroepen implementeren
- Wachtende berichten en fouten afhandelen
- Achterstand van consumergroepen monitoren