Sådan opretter du en meget tilgængelig Redis-database med Sentinel-overvågning

Se kategorier

Sådan opretter du en meget tilgængelig Redis-database med Sentinel-overvågning

3 min læses

Oversigt #

Omfor er et open source-in-memory datastrukturlager, der kan bruges som en meddelelsesbroker, cache og nøgle-værdi-database. Det understøtter adskillige datastrukturer: hashes, lister, sæt, sorterede sæt, bitmaps, geospatiale indekser, hyperloglogs osv.

Det, der gør Redis unikt, er, at det kan betragtes som både et lager og en cache. Det er designet på en måde, hvor data ændres og/eller læses fra computerens primære hukommelse.

Blandt andre funktioner tilbyder Redis høj tilgængelighed via Redis Sentinelog automatisk partitionering via Redis-klyngeDerudover har Redis en replikeringsmekanisme, der tillader slaveinstanser at være nøjagtige kopier af masterinstanser. Slaven vil automatisk genoprette forbindelsen til masteren, hver gang linket afbrydes, og dens mål er at være en nøjagtig kopi af den.

Da Redis Sentinel leverer høj tilgængelighed for Redis, kan den i mange tilfælde håndtere fejl automatisk uden menneskelig indgriben, men den leverer også andre opgaver såsom overvågning, notifikationer og fungerer som konfigurationsudbyder for klienter.

Men, Hvad sker der, når Sentinel registrerer, at en Redis-server er nede? I denne artikel vil vi se på, hvordan man opretter en komplet, højt tilgængelig, virtuel tjeneste til Redis.

Vær opmærksom på, at denne konfiguration også kan udføres, selvom din Redis-server ikke bruger Sentinel til overvågning.

Redis load balancing-miljø #

Det scenarie, vi ønsker at opnå i denne artikel, er vist i diagrammet nedenfor.

Redis Sentinel kontrollerer tilstanden af ​​alle Redis-noder og ændrer Redis-serverens rolle, når der registreres en fejl.

Load balancer kontrollerer også tilstanden, men den gør det periodisk med nogle få sekunders mellemrum. Der kan være tilfælde, hvor Sentinel registrerer problemet, men det kan tage op til et par sekunder for load balancer at opdage det. Dette kan føre til, at balancer sender anmodninger til den forkerte master, som er den, der lige har fejlet, men som er blevet skiftet af Sentinel.

RELIANOID For at løse dette problem udfører L4-farmen regelmæssige kontroller. På den anden side er der også et flow, der sendes til backend, som ikke indeholder nogen tidligere kontrol. Når farm guardian opdager, at backend ikke reagerer, udløser den alarmen og indikerer, at flowet ikke bør gå denne vej.

Med dette i betragtning har vi på den ene side kontrollerne og på den anden side anmodningerne. Hvis kontrollen mislykkes, sendes flowet straks til en anden node. Selv de igangværende andragender omdirigeres til en anden online node. Dette vil blive forklaret yderligere i konfigurationen.

Redis load balancing-konfiguration #

Før vi konfigurerer farmen, skal vi have en virtuel IP-adresse. For at opnå det, gå til Netværk > Virtuelle grænseflader. Klik derefter på Handling > Opret virtuel grænseflade. Vælg derefter Forældreinterface, Virtuel grænsefladenavn og IP-adresse:

Derefter skal vi oprette en L4xNAT-farm til den virtuelle Redis-server. For at gøre det skal du gå til LSLB > Gårde, og klik derefter på Handling og Opret gård.

Når de indledende parametre er indstillet, skal du klikke på Opret. Gå derefter til Avanceret og sørg for, at protokoltypen er TCP.

Gå derefter videre til Det vi er gode tilBackends og Farm Guardian vil blive konfigureret her til avanceret sundhedstjek. Find først underliggende programmer sektion, og klik på Handlinger > Tilføj backend som det er vist nedenfor:

Redis-overvågning og avanceret sundhedstjek #

Endelig er Farm Guardian-kontroller nødvendige for at sikre, at vi altid bruger online-noden, som forklaret i tilfældet før. Til det skal vi konfigurere følgende som Farm Guardian-kommandoen:

check_tcp -E -H HOST -p PORT -s 'info replikering\r\n' -e rolle:master -t 3

Hvor HOST og PORT vil blive erstattet af hver backends Redis-servers IP-adresse og port. Kommandoen informationsreplikering vil hente oplysningerne fra Redis-serveren for at verificere, hvilken master der er aktiv. Forbindelser vil kun blive omdirigeret til serveren, hvis rollemasteren er angivet. Så snart Sentinel ændrer rollen, vil load balancer registrere ændringen, og Redis-serveren vil blive markeret som nede. Flaget -t er det antal sekunder, som Farm Guardian venter på et svar fra Redis-serveren, og hvis timeout'en nås uden svar, markeres Redis-serveren som nede. Når Redis-serverens tilstand derimod er genoprettet, markeres den som oppe igen.

Men før du ændrer Farm Guardian for denne specifikke gård, skal du gå til Overvågning > Farmguardian og klik derefter på Handling > Opret Farmguardian.

Vælg et beskrivende navn til din nye Redis Sentinel-sundhedstjekker, for eksempel, check_redis_master som i eksemplet, vælg nu check_tcp i den indgivne Farmguardian at kopiere og klik på Opret som vist nedenfor.

Kopier til sidst ovennævnte kommando ind i Kommando parameteren og udfør konfigurationen som vist nedenfor.

Klik på Insend.

Vælg nu dette nye avancerede Farm Guardian-sundhedstjek i den virtuelle Redis-tjeneste. Gå tilbage til LSLB > Gårde, til gården skabt med navn RedisFarm, Det vi er gode til fanen. Vælg til sidst check_redis_master kommando lige oprettet under Sundhedstjek for backend.

Klik på Opdatering gården og nu vil Redis være fuldt tilgængelig.

Referencer #

https://redis.io/topics/sentinel
https://redis.io/topics/cluster-tutorial

📄 Download dette dokument i PDF-format #

    EMAIL: *

    drevet af BetterDocs