Jestem zaskoczony brakiem odpowiedzi na to, ale rozumiem, że temat obejmuje coś w rodzaju przepełnienia stosu i coś w rodzaju wymiany stosu. Dziwi mnie też brak dokumentacji, jaką udało mi się znaleźć na ten temat.
Przeprowadziłem obszerne testy w środowisku pomostowym, a następnie przystąpiłem do produkcji, a procedura, którą zastosowałem, wydawała się działać w większości:
-
Aktualizacja z 3.0.6 do 5.0.5 w naszym przypadku wydaje się działać bez zarzutu. Jak powiedziałem w oryginalnym poście, używamy podstaw w redis i niewiele się zmieniło z perspektywy klienta.
-
Przeszedłem do aktualizacji w tej kolejności:
- Pierwsi dwaj wartownicy, a następnie wartownik aktualnie w
leader
status. - Każdy z węzłów redis wymienionych jako
slaves
(obecnie znane jakoreplicas
).- Po uaktualnieniu każdego węzła będzie chciał skopiować swój
dump.rdb
od mistrza - Synchronizację można wykonać z węzłem 5 z węzła 3, ale gdy węzeł 5 jest nadrzędny, węzeł 3 nie może zsynchronizować, więc po przejściu do węzła zaktualizowanego nie można wrócić do wcześniejszej wersji.
- Po uaktualnieniu każdego węzła będzie chciał skopiować swój
- Na koniec użyj strażników do przełączenia awaryjnego na uaktualniony węzeł jako master i uaktualnij byłego mastera
- Pierwsi dwaj wartownicy, a następnie wartownik aktualnie w
Mam nadzieję, że ktoś może uznać to za przydatne w przyszłości.