Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kaip „Redis Cluster“ tvarko mazgų gedimus


Kaip „Redis Cluster“ tvarko mazgų gedimus


Štai kaip Redis Cluster tvarko mazgų gedimus:

Automatinis perjungimas

Kai „Redis Cluster“ pagrindinis mazgas sugenda, klasteris automatiškai paaukštins vieną iš replikos mazgų, kad tas pagrindinis mazgas taptų naujuoju pagrindiniu mazgu. Šis persileidimo procesas vyksta automatiškai, be jokio rankinio įsikišimo.

Pagrindiniai perkėlimo proceso žingsniai yra šie:

1. Kiti klasterio mazgai aptinka, kad pagrindinis mazgas nepavyko, naudojant klasterio paskalų protokolą arba bandant prisijungti prie mazgo.

2. Tada klasteris surengia rinkimus tarp to pagrindinio įrenginio kopijos mazgų. Naujuoju pagrindiniu išrenkama kopija su naujausiais duomenimis.

3. Pasirinktas replikos mazgas paaukštinamas, kad jis taptų naujuoju pagrindiniu. Tada kitos kopijos sukonfigūruojamos taip, kad būtų galima dauginti iš naujojo pagrindinio.

4. Klientai nukreipiami į naują pagrindinį mazgą naudojant „MOVED“ klaidos atsaką, kuriame yra naujas tarpsnių ir mazgų susiejimas.

Lizdų aprėptis

Kad išliktų pasiekiamas mazgų gedimų metu, Redis Cluster reikalauja, kad dauguma pagrindinių mazgų būtų pasiekiami ir galėtų bendrauti. Tai žinoma kaip „laikų aprėpties“ palaikymas.

Kiekvienas pagrindinis klasterio mazgas yra atsakingas už 16 384 maišos tarpsnių poaibį. Kol yra prieinama dauguma pagrindinių serverių ir gali aptarnauti jiems priskirtus laiko tarpsnius, klasteris gali veikti toliau.

Jei per daug pagrindinių mazgų sugenda taip, kad likę pagrindiniai mazgai negali apimti viso maišos lizdo diapazono, klasteris taps nepasiekiamas, kol sugedę mazgai nebus atkurti arba pakeisti.

Reprodukcijos reklama

„Redis Cluster“ remiasi replikos mazgais, kad užtikrintų aukštą pasiekiamumą. Sugedus pagrindiniam darbui, vienas iš jo kopijos mazgų automatiškai paaukštinamas ir tampa nauju pagrindiniu.

Naujuoju pagrindiniu išrenkama kopija su naujausiais duomenimis. Tai užtikrina duomenų nuoseklumą per failo perkėlimo procesą.

Split-Brain valdymas

„Redis Cluster“ naudoja kvorumu pagrįstą metodą, kad tvarkytų tinklo skaidinius ir išvengtų „smegenų padalijimo“ scenarijų, kai klasteris padalijamas į kelias nepriklausomas grupes.

Jei dauguma pagrindinių serverių tampa nepasiekiami, likę mazgai atmes kliento užklausas, kol skaidinys bus išspręstas. Tai užtikrina duomenų nuoseklumą.

Naudodama šiuos automatinio perkėlimo ir kvorumu pagrįstus mechanizmus, „Redis Cluster“ gali užtikrinti aukštą pasiekiamumą ir atsparumą mazgų gedimams ir tinklo skaidiniams.

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