Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jakie są najlepsze praktyki konfigurowania klastra Redis


Jakie są najlepsze praktyki konfigurowania klastra Redis


Klaster Redis jest popularnym rozwiązaniem do skalowania wdrażania Redis w celu osiągnięcia wyższej dostępności, tolerancji błędów i odchylania danych w wielu węzłach. Właściwa konfiguracja klastra Redis obejmuje kilka najlepszych praktyk, które zapewniają optymalną wydajność, niezawodność i zarządzanie.

architektura klastra i konfiguracja węzłów

Klaster Redis wymaga co najmniej trzech węzłów głównych do niezawodnego działania. Idealnie, klaster produkcyjny powinien zawierać minimum sześć węzłów, przy czym każdy mistrz ma jedną lub więcej replik. Ta konfiguracja zapewnia wysoką dostępność, umożliwiając automatyczne przełączanie awaryjne na wypadek awarii każdego węzła głównego. Każdy węzeł działa w trybie klastra i musi mieć włączone określone konfiguracje, w tym:

- `` TAKS obsługujący klaster, aby włączyć tryb klastra w każdej instancji Redis.
-`Cluster-Config-File` określając plik, w którym zapisany jest stan węzłów klastrowych (np.„ węzły.conf`).
-`` Time-węzeł klastrów określony maksymalny czas, który węzeł może być nieosiągalny, zanim zostanie uznany za nieudany (powszechnie ustawiony na 5000 do 15000 milisekund).

„Cluster-Config-File” jest zarządzany przez Redis automatycznie i nie może być edytowany ręcznie, ponieważ utrzymuje krytyczne informacje o stanie, takie jak identyfikatory węzłów, mapowania i własność automatów. Każdy węzeł przypisuje się unikalnego identyfikatora węzła podczas uruchamiania, który utrzymuje się przez cały okres życia, nawet jeśli zmienia się IP lub porty.

konfiguracja sprzętu i sieci

Węzły powinny być wdrażane na osobnych maszynach fizycznych lub wirtualnych, aby uniknąć pojedynczych punktów awarii. Łączność sieciowa między węzłami musi zezwalać zarówno na porty komunikacji klienta (zazwyczaj TCP 6379 lub użyteczny port serwisowy), jak i port magistrali klastra (drugi port typowo TCP Service Port + 10000, np. 16379) dla klastrowej komunikacji internode.

Ostrożnie skonfiguruj interfejsy sieciowe i zapory ogniowe, aby umożliwić ten ruch między węzłami i opcjonalnie między klientami a węzłami klastrowymi. Ustawienie dyrektywy „BIND” z określonymi prywatnymi adresami IP zamiast wiązania ze wszystkimi interfejsami zwiększa bezpieczeństwo.

Trwałość i trwałość danych

Włącz mechanizmy trwałości, takie jak migawki RDB lub AOF (pliki dołączania tylko), w zależności od wymaganych kompromisów trwałości danych i kompromisów wydajności. AOF zapewnia lepszą trwałość, rejestrując każdą operację zapisu, ale może dodawać opóźnienia i narzut IO. Połączenie migawek RDB z AOF może pomóc zrównoważyć wydajność i trwałość.

Dyrektywa „Dodatek Yes” włącza tryb AOF. Ustawienia te powinny być starannie dostrojone zgodnie z wzorcami obciążenia i dopuszczalnymi oknami utraty danych.

Zasady zarządzania pamięcią i eksmisji

Skonfiguruj ustawienie „MaxMemory”, aby zapewnić, że Redis pasuje do dostępnej pamięci w węźle. Wybierz odpowiednią zasadę eksmisji za pomocą „MaxMemory-Policy”, takiej jak „Allkeys-Lru`, aby użyć algorytmu ostatecznie niedawno używanego we wszystkich klawiszach po osiągnięciu limitów pamięci. Kluczowe monitorowanie zużycia pamięci i współczynników trafień/miss ma kluczowe znaczenie.

Klaster Redis działa najlepiej, gdy zestaw danych w pełni pasuje do pamięci w każdym węźle. Unikaj nadmiernego zamiany lub nadmiernego przemianowania pamięci.

Zarządzanie automatem i dystrybucja danych

Klaster dzieli miejsce na klawisze na 16 384 szczeliny skrótu, które są rozmieszczone we wszystkich węzłach głównych. Podczas tworzenia klastra upewnij się, że wszystkie szczeliny są pokryte węzłem głównym. Klienci muszą być świadomi klastra, aby prowadzić zapytania do prawidłowego węzła na podstawie obliczeń gniazda skrótu.

Unikaj operacji obejmujących wiele klawiszy odwzorowanych na różne gniazda, ponieważ wymagają one poleceń między ograniczonymi lub mniej wydajnymi.

Używaj narzędzi takich jak „redis-cli-klaster tworzenia” do klastrów bootstrap z prawidłowym przydziałem szczeliny i automatycznie przypisaniem repliki.

Konfiguracja klienta dla świadomości klastra

Skonfiguruj biblioteki klientów, aby wdzięcznie obsługiwać zmiany topologii klastra Redis. Wiele bibliotek klientów zapewnia obsługę klastrów, w tym automatyczne odkrywanie i rekonfiguracja węzłów klastrów, gdy zawodzą lub przetasowe. Zapobiega to błędom klienta i poprawia niezawodność podczas awaryjnych węzłów lub operacji skalowania.

Klienci powinni być skonfigurowani do ponownego ponownego przeniesienia lub proszenia przekierowań i utrzymywania zaktualizowanych widoków stanu klastra.

Rozważania dotyczące bezpieczeństwa

Bezpieczne węzły klastra poprzez włączenie uwierzytelniania hasła (dyrektywa wymagań, ograniczając dostęp do sieci za pośrednictwem reguł zapory i ograniczanie odsłoniętych interfejsów za pomocą konfiguracji „BIND”. Jeśli to możliwe, użyj szyfrowania TLS, aby chronić dane w tranzycie.

Wyłącz tryb chroniony podczas uruchamiania Redis w trybie klastra, ale upewnij się, że konfiguracje sieciowe izolują klaster od niezaufanych klientów.

Monitorowanie i konserwacja

Wdrożyć kompleksowe monitorowanie zdrowia klastrów, w tym dostępność węzłów, opóźnienie, wykorzystanie pamięci, opóźnienie replikacji i zmiany stanu klastra. Narzędzia takie jak Redis Sentinel, zewnętrzne platformy monitorowania lub rozwiązania dostawców chmur powinny być częścią strategii operacyjnej.

Regularnie testuj mechanizmy przełączania awaryjnego i wykonuj kontrolowane ponowne uruchomienie węzłów lub ćwiczenia skalowania, aby zweryfikować odporność klastra.

Tuning Performance

Tune Redis i konfiguracja klastra w oparciu o specyfikę obciążenia:

- Minimalizuj polecenia blokowania i użyj skryptów rurociągowych lub LUA, aby zoptymalizować przepustowość.
-Dostosuj `` klaster-węzeł Timeout` zgodnie z charakterystyką opóźnienia sieci, aby uniknąć fałszywych awaryjnych.
- Użyj spójnego nazewnictwa haszu i inteligentnego klucza, aby optymalizować rozkłady gniazd.
- Unikaj dużych kluczy lub wartości i rozważ włamanie dużych obiektów na mniejsze fragmenty.
- Wykorzystaj natywne mechanizmy Redis Cluster do skalowania poziomego poprzez dodanie lub usuwanie węzłów i ponownych równowagi.

tworzenie kopii zapasowych i odzyskiwania

Projektowanie strategii tworzenia kopii zapasowych dostosowane do konfiguracji klastra. Używaj okresowych migawek RDB z węzłów głównych lub replików i przechowuj kopie zapasowe zewnętrznie. Unikaj przywracania kopii zapasowych bezpośrednio na klastrze na żywo bez odpowiedniego synchronizacji szczelin i stanu węzłów.

W celu odzyskiwania procedury użyj zalecanych przez Redis do rekonstrukcji klastrów z zapisanych konfiguracji i kopii zapasowych.

Streszczenie

Najlepsze praktyki dotyczące konfiguracji klastra Redis:

- Konfigurowanie co najmniej trzech węzłów głównych z replikami dla przełączania awaryjnego.
-Zapewnienie odpowiednich dyrektyw konfiguracji związanych z klastrem (`` klaster-obsługuje `,` klaster-config-file`, `` klaster-node-timeout`).
- Wdrażanie węzłów na odpowiednim sprzęcie z prawidłowymi ustawieniami sieciowymi dla komunikacji klienta i klastra.
- Umożliwienie uporczywie i dostrajania zasad pamięci i eksmisji w celu dopasowania wymagań dotyczących obciążenia.
- Skuteczne zarządzanie szczelinami skrótów i zapewnienie klientom świadomości klastra.
- Zabezpieczenie klastra za pomocą uwierzytelniania i sterowania sieciowego.
- Regularne monitorowanie zdrowia i wydajności klastrów.
- Ostrożnie planowanie operacji tworzenia kopii zapasowych, odzyskiwania i skalowania.

Zastosowanie tych najlepszych praktyk zapewnia solidne, skalowalne i wysoce dostępne środowisko klastra Redis odpowiednich do obciążeń produkcyjnych. Powyższe tematy obejmują niezbędne względy operacyjne, architektoniczne i bezpieczeństwa dla wdrożeń klastrów Redis.