Replicatie en fouttolerantie
Leer hoe Kafka gegevensveiligheid en hoge beschikbaarheid garandeert door topics over brokers te repliceren.
Replicatie en fouttolerantie is een gratis De basis van Apache Kafka en streamverwerking-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 De basis van Apache Kafka en streamverwerking. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.
Waarom gegevensveiligheid belangrijk is
Stel dat je belangrijke gegevens hebt. Als die maar op één plek zijn opgeslagen en die plek valt uit, zijn je gegevens weg!
In gedistribueerde systemen zoals Kafka is het cruciaal om ervoor te zorgen dat gegevens niet verloren gaan en altijd beschikbaar zijn. Daar komt replicatie om de hoek kijken.
Gegevensduplicatie in Kafka
Replicatie in Kafka betekent dat er meerdere kopieën van je gegevens (berichten) worden gemaakt en op verschillende Kafka-brokers (servers) worden opgeslagen.
Dit eenvoudige idee biedt twee grote voordelen:
- Fouttolerantie: Als één broker uitvalt, bestaan de kopieën ergens anders.
- Hoge beschikbaarheid: Gegevens blijven toegankelijk, zelfs tijdens storingen.
De replicatiefactor uitgelegd
De replicatiefactor bepaalt hoeveel kopieën van elke partitie Kafka in je cluster bewaart.
- Een replicatiefactor van 1 betekent één kopie (geen fouttolerantie).
- Een factor van 3 (bijvoorbeeld 3 kopieën) is gebruikelijk in productieomgevingen.
Elke kopie wordt een replica genoemd.
Leiders en volgers
Voor elke partitie wordt één replica aangewezen als de leider. De andere replica's zijn volgers.
- De leider verwerkt alle lees- en schrijfverzoeken voor die partitie.
- Volgers repliceren passief gegevens van de leider om gesynchroniseerd te blijven.
Dit ontwerp vereenvoudigt de interactie met clients, omdat zij alleen met de leider communiceren.
De synchronisatiegroep (ISR)
Kafka houdt bij welke volgers volledig zijn bijgewerkt met de leider. Deze groep wordt de set In-Sync Replica (ISR) genoemd.
De ISR-set bevat de leider en alle volgers die alle berichten van de leider hebben gerepliceerd en niet te ver achterlopen.
Dit is essentieel om de duurzaamheid van gegevens te garanderen.
Bevestigingen van producenten (acks)
Producenten kunnen instellen op hoeveel bevestigingen (acks) ze wachten voordat ze een bericht als 'succesvol verzonden' beschouwen. Dit heeft invloed op duurzaamheid en prestaties.
acks=0: Geen bevestigingen. Het snelst, maar gegevens kunnen verloren gaan.acks=1: De leader bevestigt de ontvangst. Beter, maar gegevens kunnen verloren gaan als de leader uitvalt voordat de followers zijn gesynchroniseerd.acks=all(of-1): Alle ISR's moeten bevestigen. Het langzaamst, maar met de sterkste garantie op gegevensbehoud.
Hoe followers up-to-date blijven
Followers sturen voortdurend fetch-verzoeken naar de leader om nieuwe berichten op te halen. Vervolgens schrijven ze deze berichten naar hun eigen lokale logboek.
Door deze voortdurende synchronisatie kan een follower uit de ISR bij een storing van de leader snel de nieuwe leader worden zonder gegevensverlies.
Brokerstoring: de leader valt uit
Wat gebeurt er als de broker waarop de leader van een partitie draait uitvalt?
- De leader wordt onbeschikbaar.
- Kafka start automatisch een leaderverkiezing.
- Een van de andere brokers in de ISR-set wordt als nieuwe leader gekozen.
Dit proces verloopt snel en transparant voor clients, waardoor een hoge beschikbaarheid wordt gegarandeerd.
Brokerstoring: de follower valt uit
Als een broker waarop een follower-replica draait uitvalt, is dat minder kritiek:
- De follower wordt tijdelijk uit de ISR-set verwijderd.
- De leader blijft verzoeken verwerken.
- Zodra de uitgevallen broker is hersteld, haalt deze de achterstand bij de leader in en voegt hij zich weer bij de ISR.
Het systeem blijft gedurende het hele proces volledig operationeel.
De replicatiefactor configureren
Je stelt de replicatiefactor in wanneer je een topic aanmaakt. Hier volgt een voorbeeld met de opdrachtregelprogramma's van Kafka:
kafka-topics.sh --create --topic my_replicated_topic --bootstrap-server localhost:9092 --partitions 3 --replication-factor 3
Hiermee maak je 'my_replicated_topic' met 3 partities, die elk 3 kopieën verspreid over brokers hebben.
Snelle controle van replicatie
Stel dat een Kafka-topic een partitie heeft met een replicatiefactor van 3. Op dit moment zijn de leader en één follower gesynchroniseerd, maar is een andere follower tijdelijk uitgevallen. Wat is de status van de set In-Sync Replicas (ISR)?
Samenvatting: de basis van replicatie
We hebben de cruciale rol van replicatie in Kafka voor gegevensveiligheid en hoge beschikbaarheid behandeld.
- Replicatiefactor: Het aantal kopieën van de gegevens.
- Leaders en followers: Rollen voor het verwerken van verzoeken en het synchroniseren van gegevens.
- In-Sync Replicas (ISR): De cruciale set volledig gesynchroniseerde replica's.
- Bevestigingen (acks): Instelling van de producent waarmee je het gegevensbehoud regelt.
- Fouttolerantie: Hoe Kafka storingen van brokers opvangt.
Als je deze concepten begrijpt, kun je robuuste Kafka-systemen bouwen.
Leer De basis van Apache Kafka en streamverwerking 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 “Replicatie en fouttolerantie” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Apache Kafka en streamverwerking, waaronder “Replicatie en fouttolerantie”, 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 De basis van Apache Kafka en streamverwerking bevat in totaal 4 lessen.
Wat leer ik in “Replicatie en fouttolerantie”?
Leer hoe Kafka gegevensveiligheid en hoge beschikbaarheid garandeert door topics over brokers te repliceren. Je oefent met De basis van Apache Kafka en streamverwerking 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 De basis van Apache Kafka en streamverwerking te beginnen?
Ervaring vooraf is niet nodig. De basis van Apache Kafka en streamverwerking 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 “Replicatie en fouttolerantie”?
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 De basis van Apache Kafka en streamverwerking?
Ja. Elke les over De basis van Apache Kafka en streamverwerking 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
- Replicatie en fouttolerantie
- Rollen van de controller en ZooKeeper/KRaft
- Een Kafka-cluster ontwerpen
- Rack awareness en plaatsing over meerdere AZ's