Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan kezeli a Redis Cluster a csomóponti hibákat


Hogyan kezeli a Redis Cluster a csomóponti hibákat


A Redis Cluster a következőképpen kezeli a csomóponti hibákat:

Automatikus feladatátvétel

Ha egy Redis Cluster főcsomópont meghibásodik, a fürt automatikusan előlépteti az egyik replikacsomópontot, hogy az új főcsomópont legyen. Ez a feladatátvételi folyamat automatikusan, manuális beavatkozás nélkül történik.

A feladatátvételi folyamat legfontosabb lépései a következők:

1. A fürt többi csomópontja észleli, hogy a főcsomópont meghibásodott, akár a fürt pletykaprotokollján keresztül, akár úgy, hogy megpróbál csatlakozni a csomóponthoz.

2. A fürt ezután kiválasztást tart az adott mester replika csomópontjai között. A legfrissebb adatokat tartalmazó replikát választják új mesternek.

3. A kiválasztott replikacsomópontot előléptetik az új mesterré. A többi replika ezután újrakonfigurálva van, hogy az új mesterről replikáljanak.

4. A kliensek átirányításra kerülnek az új főcsomópontra a "MOVED" hibaválasz használatával, amely tartalmazza az új slot-node leképezést.

Slot lefedettség

Ahhoz, hogy a Redis Cluster elérhető maradjon a csomópontok meghibásodása esetén, megköveteli, hogy a fő csomópontok többsége elérhető legyen, és képes legyen kommunikálni. Ez a „hely-lefedettség” fenntartása.

A fürt minden fő csomópontja a 16 384 hash-rés egy részhalmazáért felelős. Amíg a mesterek többsége elérhető, és ki tudja szolgálni a hozzájuk rendelt réseket, a fürt továbbra is működhet.

Ha túl sok főcsomópont meghibásodik, és a fennmaradó mesterek nem tudják lefedni a teljes hash-réstartományt, a fürt elérhetetlenné válik mindaddig, amíg a meghibásodott csomópontok helyreállnak vagy ki nem cserélik.

Replika promóció

A Redis Cluster replika csomópontokra támaszkodik a magas rendelkezésre állás érdekében. Ha egy mester meghibásodik, az egyik replikacsomópontja automatikusan előléptet az új mesterré.

A legfrissebb adatokat tartalmazó replikát választják új mesternek. Ez biztosítja az adatok konzisztenciájának megőrzését a feladatátvételi folyamat során.

A megosztott agy kezelése

A Redis Cluster kvórum alapú megközelítést használ a hálózati partíciók kezelésére, és elkerüli az olyan „megosztott agy” forgatókönyveket, amikor a fürt több független fürtre oszlik.

Ha a vezérlők többsége elérhetetlenné válik, a fennmaradó csomópontok elutasítják az ügyfél kéréseit, amíg a partíció fel nem oldódik. Ez biztosítja az adatok konzisztenciájának megőrzését.

Ezen automatikus feladatátvételi és kvórum alapú mechanizmusok kihasználásával a Redis Cluster magas szintű rendelkezésre állást és rugalmasságot tud biztosítani a csomóponti hibák és a hálózati partíciók esetén.

Idézetek:
[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