Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako Redis Cluster obravnava napake vozlišč


Kako Redis Cluster obravnava napake vozlišč


Takole je opisano, kako Redis Cluster obravnava napake vozlišč:

Samodejni preklop

Ko glavno vozlišče Redis Cluster odpove, bo gruča samodejno povišala eno od replik vozlišč za to glavno enoto, da postane nova glavna. Ta postopek samodejnega preklopa se zgodi samodejno brez kakršnega koli ročnega posredovanja.

Ključni koraki v procesu samodejnega preklopa so:

1. Druga vozlišča v gruči zaznajo, da je glavno vozlišče odpovedalo, bodisi prek protokola ogovarjanja gruče bodisi s poskusom povezave z vozliščem.

2. Grozd nato izvede volitve med vozlišči replike za to glavno enoto. Za novega masterja je izbrana replika z najbolj posodobljenimi podatki.

3. Izbrano vozlišče replike je povišano v novo glavno. Druge replike se nato znova konfigurirajo za podvajanje iz novega glavnega.

4. Odjemalci so preusmerjeni na novo glavno vozlišče z odgovorom o napaki `MOVED`, ki vsebuje novo preslikavo reže v vozlišče.

Pokritost reže

Da ostane na voljo med okvarami vozlišč, Redis Cluster zahteva, da je večina glavnih vozlišč na voljo in lahko komunicirajo. To je znano kot vzdrževanje "pokritosti reže".

Vsako glavno vozlišče v gruči je odgovorno za podnabor 16.384 zgoščenih rež. Dokler je večina masterjev na voljo in lahko služijo svojim dodeljenim slotom, lahko gruča še naprej deluje.

Če odpove preveč glavnih vozlišč, tako da preostali glavni ne morejo pokriti celotnega obsega zgoščenih rež, bo gruča postala nerazpoložljiva, dokler se okvarjena vozlišča ne obnovijo ali zamenjajo.

Promocija replike

Redis Cluster se za zagotavljanje visoke razpoložljivosti opira na replika vozlišč. Ko master odpove, se eno od njegovih replik vozlišč samodejno poviša v novega masterja.

Za novega masterja je izbrana replika z najbolj posodobljenimi podatki. To zagotavlja doslednost podatkov med postopkom samodejnega preklopa.

Ravnanje z razdeljenimi možgani

Redis Cluster uporablja pristop, ki temelji na kvorumu, za obravnavo omrežnih particij in izogibanje scenarijem "split-brain", kjer se gruča razdeli na več neodvisnih gruč.

Če večina masterjev postane nedosegljivih, bodo preostala vozlišča zavračala zahteve strank, dokler particija ni razrešena. To zagotavlja ohranjanje konsistentnosti podatkov.

Z izkoriščanjem teh samodejnih samodejnih preklopov in mehanizmov, ki temeljijo na kvorumu, lahko Redis Cluster zagotovi visoko razpoložljivost in odpornost ob okvarah vozlišč in omrežnih particij.

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