Hier ziet u hoe Redis Cluster knooppuntfouten afhandelt:
Automatische failover
Wanneer een Redis Cluster-masterknooppunt faalt, promoveert het cluster automatisch een van de replicaknooppunten voor die master tot de nieuwe master. Dit failoverproces gebeurt automatisch, zonder enige handmatige tussenkomst.
De belangrijkste stappen in het failoverproces zijn:
1. De andere knooppunten in het cluster detecteren dat het hoofdknooppunt defect is, hetzij via het clusterroddelprotocol, hetzij door te proberen verbinding te maken met het knooppunt.
2. Het cluster houdt vervolgens een verkiezing onder de replicaknooppunten voor die master. De replica met de meest actuele gegevens wordt gekozen als de nieuwe master.
3. Het gekozen replicaknooppunt wordt gepromoveerd tot de nieuwe master. De andere replica's worden vervolgens opnieuw geconfigureerd om te repliceren vanaf de nieuwe master.
4. Clients worden omgeleid naar het nieuwe hoofdknooppunt met behulp van de 'MOVED'-foutreactie, die de nieuwe slot-naar-knooppunttoewijzing bevat.
Slotdekking
Om beschikbaar te blijven tijdens knooppuntstoringen vereist Redis Cluster dat de meerderheid van de masterknooppunten beschikbaar is en kan communiceren. Dit staat bekend als het handhaven van "slotdekking".
Elk masterknooppunt in het cluster is verantwoordelijk voor een subset van de 16.384 hashslots. Zolang de meerderheid van de masters beschikbaar is en de toegewezen slots kan bedienen, kan het cluster blijven functioneren.
Als te veel masterknooppunten uitvallen, zodat de resterende masters het volledige bereik van de hashslots niet kunnen bestrijken, zal het cluster niet beschikbaar zijn totdat de defecte knooppunten zijn hersteld of zijn vervangen.
Replica-promotie
Redis Cluster vertrouwt op replicaknooppunten om hoge beschikbaarheid te bieden. Wanneer een master faalt, wordt een van de replicaknooppunten automatisch gepromoveerd tot de nieuwe master.
De replica met de meest actuele gegevens wordt gekozen als de nieuwe master. Dit zorgt ervoor dat de gegevensconsistentie behouden blijft tijdens het failoverproces.
Omgaan met gespleten hersenen
Redis Cluster maakt gebruik van een op quorum gebaseerde aanpak om netwerkpartities af te handelen en 'split-brain'-scenario's te vermijden waarbij het cluster wordt opgedeeld in meerdere onafhankelijke clusters.
Als een meerderheid van de masters niet meer beschikbaar is, zullen de resterende knooppunten clientverzoeken weigeren totdat de partitie is opgelost. Dit zorgt ervoor dat de consistentie van de gegevens behouden blijft.
Door gebruik te maken van deze automatische failover- en quorum-gebaseerde mechanismen kan Redis Cluster hoge beschikbaarheid en veerkracht bieden bij knooppuntstoringen en netwerkpartities.
Citaties:[1] https://yifan-online.com/en/km/article/detail/16750
[2] https://stackoverflow.com/questions/63878562/two-failure-support-in-3-node-redis-cluster
[3] https://redis.io/docs/latest/operate/oss_and_stack/management/scaling/
[4] https://redis.io/docs/latest/commands/cluster-nodes/
[5] https://github.com/lettuce-io/lettuce-core/issues/2318