Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan håndterer Redis Cluster nodefeil


Hvordan håndterer Redis Cluster nodefeil


Her er hvordan Redis Cluster håndterer nodefeil:

Automatisk failover

Når en Redis Cluster-masternode mislykkes, vil klyngen automatisk fremme en av replikanodene for den masteren til å bli den nye masteren. Denne failover-prosessen skjer automatisk uten noen manuell intervensjon.

Nøkkeltrinnene i failover-prosessen er:

1. De andre nodene i klyngen oppdager at masternoden har feilet, enten gjennom klyngesladderprotokollen eller ved å forsøke å koble til noden.

2. Klyngen avholder deretter et valg blant replika-nodene for den masteren. Replikaen med de mest oppdaterte dataene velges som ny master.

3. Den valgte replika-noden forfremmes til å bli den nye masteren. De andre replikaene blir deretter rekonfigurert til å replikere fra den nye masteren.

4. Klienter blir omdirigert til den nye hovednoden ved å bruke "FLYTTET" feilrespons, som inneholder den nye spor-til-node-tilordningen.

Spordekning

For å forbli tilgjengelig under nodefeil krever Redis Cluster at flertallet av masternodene er tilgjengelige og i stand til å kommunisere. Dette er kjent som å opprettholde "slot-dekning".

Hver hovednode i klyngen er ansvarlig for et undersett av de 16 384 hash-sporene. Så lenge flertallet av masterne er tilgjengelige og kan betjene sine tildelte plasser, kan klyngen fortsette å operere.

Hvis for mange masternoder svikter slik at de gjenværende masterne ikke kan dekke hele hash-sporområdet, vil klyngen bli utilgjengelig inntil de mislykkede nodene gjenopprettes eller erstattes.

Replika-kampanje

Redis Cluster er avhengig av replikanoder for å gi høy tilgjengelighet. Når en master mislykkes, blir en av replikanodene automatisk forfremmet til å bli den nye masteren.

Replikaen med de mest oppdaterte dataene velges som ny master. Dette sikrer at datakonsistensen opprettholdes under failover-prosessen.

Håndtering av splitt-hjerne

Redis Cluster bruker en quorum-basert tilnærming for å håndtere nettverkspartisjoner og unngå "split-brain"-scenarier der klyngen blir delt inn i flere uavhengige klynger.

Hvis et flertall av mastere blir utilgjengelige, vil de gjenværende nodene nekte klientforespørsler til partisjonen er løst. Dette sikrer at datakonsistensen bevares.

Ved å utnytte disse automatiske failover og quorum-baserte mekanismene, er Redis Cluster i stand til å gi høy tilgjengelighet og motstandskraft i møte med nodefeil og nettverkspartisjoner.

Sitater:
[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