Näin Redis Cluster käsittelee solmuvirheitä:
Automaattinen vikasieto
Kun Redis Cluster -pääsolmu epäonnistuu, klusteri edistää automaattisesti yhtä replikasolmua, jotta siitä tulee uusi isäntä. Tämä vikasietoprosessi tapahtuu automaattisesti ilman manuaalista puuttumista.
Keskeiset vaiheet vikasietoprosessissa ovat:
1. Muut klusterin solmut havaitsevat, että pääsolmu on epäonnistunut joko klusterin juoruprotokollan kautta tai yrittämällä muodostaa yhteyden solmuun.
2. Tämän jälkeen klusteri järjestää valinnan kyseisen isäntäkoneen replikasolmujen joukosta. Uusimmat tiedot sisältävä replika valitaan uudeksi masteriksi.
3. Valitusta replikasolmusta tulee uusi isäntä. Muut replikat määritetään sitten uudelleen replikoimaan uudesta pääkoneesta.
4. Asiakkaat ohjataan uuteen pääsolmuun käyttämällä `MOVED`-virhevastausta, joka sisältää uuden paikasta solmuun -vastaavuuden.
Slotin kattavuus
Redis Cluster pysyy käytettävissä solmuvikojen aikana edellyttää, että suurin osa pääsolmuista on käytettävissä ja kykenee kommunikoimaan. Tätä kutsutaan "paikan peiton" ylläpitämiseksi.
Jokainen klusterin pääsolmu on vastuussa 16 384 hash-välin osajoukosta. Niin kauan kuin suurin osa isännistä on käytettävissä ja voi palvella niille osoitettuja paikkoja, klusteri voi jatkaa toimintaansa.
Jos liian monta isäntäsolmua epäonnistuu niin, että jäljellä olevat isännät eivät voi kattaa täyttä hajautusvälialuetta, klusteri ei ole käytettävissä, kunnes epäonnistuneet solmut palautuvat tai korvataan.
Replica Promotion
Redis Cluster luottaa replikasolmuihin korkean käytettävyyden takaamiseksi. Kun isäntäkone epäonnistuu, yksi sen replikasolmuista ylennetään automaattisesti uudeksi isäntäksi.
Uusimmat tiedot sisältävä replika valitaan uudeksi masteriksi. Tämä varmistaa tietojen johdonmukaisuuden säilymisen vikasietoprosessin aikana.
Split-Brainin käsittely
Redis Cluster käyttää koorumiin perustuvaa lähestymistapaa verkkoosioiden käsittelyyn ja välttääkseen "split-brain"-skenaarioita, joissa klusteri jaetaan useisiin itsenäisiin klustereihin.
Jos suurin osa isäntäkoneista ei ole käytettävissä, loput solmut hylkäävät asiakaspyynnöt, kunnes osio on ratkaistu. Tämä varmistaa tietojen johdonmukaisuuden säilymisen.
Hyödyntämällä näitä automaattisia vikasieto- ja koorumipohjaisia mekanismeja, Redis Cluster pystyy tarjoamaan korkean käytettävyyden ja joustavuuden solmuvirheiden ja verkkoosioiden edessä.
Lainaukset:[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