Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon W jaki sposób Redis Cluster radzi sobie z awariami węzłów


W jaki sposób Redis Cluster radzi sobie z awariami węzłów


Oto, jak Redis Cluster radzi sobie z awariami węzłów:

Automatyczne przełączanie awaryjne

Jeśli węzeł główny Redis Cluster ulegnie awarii, klaster automatycznie awansuje jeden z węzłów repliki dla tego węzła głównego na nowy główny. Ten proces przełączania awaryjnego odbywa się automatycznie, bez żadnej ręcznej interwencji.

Kluczowe kroki w procesie przełączania awaryjnego to:

1. Pozostałe węzły w klastrze wykrywają awarię węzła głównego za pośrednictwem protokołu plotek klastra lub poprzez próbę połączenia się z węzłem.

2. Następnie klaster przeprowadza wybory między węzłami repliki dla tego wzorca. Na nowego wzorca wybierana jest replika posiadająca najbardziej aktualne dane.

3. Wybrany węzeł repliki zostaje nowym węzłem głównym. Pozostałe repliki są następnie ponownie konfigurowane w celu replikacji z nowego głównego repliki.

4. Klienci są przekierowywani do nowego węzła głównego za pomocą odpowiedzi na błąd „MOVED”, która zawiera nowe mapowanie między gniazdami.

Pokrycie gniazda

Aby pozostać dostępnym w przypadku awarii węzłów, klaster Redis wymaga, aby większość węzłów głównych była dostępna i mogła się komunikować. Nazywa się to utrzymywaniem „pokrycia szczeliny”.

Każdy węzeł główny w klastrze jest odpowiedzialny za podzbiór 16 384 miejsc mieszania. Dopóki większość urządzeń głównych jest dostępna i może obsługiwać przydzielone im gniazda, klaster może nadal działać.

Jeśli zbyt wiele węzłów głównych ulegnie awarii, w wyniku czego pozostałe węzły główne nie będą w stanie obsłużyć pełnego zakresu szczeliny mieszającej, klaster stanie się niedostępny do czasu odzyskania uszkodzonych węzłów lub ich wymiany.

Promocja replik

Klaster Redis opiera się na węzłach replik, aby zapewnić wysoką dostępność. W przypadku awarii modułu głównego jeden z jego węzłów repliki zostaje automatycznie awansowany na nowy moduł główny.

Na nowego wzorca wybierana jest replika posiadająca najbardziej aktualne dane. Zapewnia to utrzymanie spójności danych podczas procesu przełączania awaryjnego.

Postępowanie z rozszczepionym mózgiem

Klaster Redis wykorzystuje podejście oparte na kworum do obsługi partycji sieciowych i pozwala uniknąć scenariuszy „podzielonego mózgu”, w których klaster jest dzielony na wiele niezależnych klastrów.

Jeśli większość urządzeń głównych stanie się niedostępna, pozostałe węzły będą odrzucać żądania klientów do czasu rozwiązania partycji. Zapewnia to zachowanie spójności danych.

Wykorzystując mechanizmy automatycznego przełączania awaryjnego i kworum, Redis Cluster jest w stanie zapewnić wysoką dostępność i odporność na awarie węzłów i partycje sieciowe.

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