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

SENDT AF Zevenet | 10. juni 2019

Oversigt

Omfor er en open-source i hukommelsesdatastrukturlager, der kan bruges som en meddelelsesmægler, cache og nøgleværdiedatabase. Det understøtter flere datastrukturer: hashes, lister, sæt, sorterede sæt, bitmaps, geospatiale indekser, hyperloglogs osv.

Hvad der gør Redis unik er, at det kan betragtes som en butik og en cache. Det er designet på en måde, hvor data ændres og / eller læses fra computerens hukommelse.

Blandt andre funktioner giver Redis høj tilgængelighed via Redis Sentinelog automatisk partitionering via Redis Cluster. Derudover har Redis en replikationsmekanisme, der tillader, at slaveforekomster er nøjagtige kopier af masterforekomster. Slaven opretter automatisk forbindelse til masteren, hver gang linket går i stykker, og dets mål er at være en nøjagtig kopi af den.

Da Redis Sentinel giver Redis stor tilgængelighed, kan den håndtere fejl automatisk uden nogen menneskelig indgriben i mange tilfælde, men giver også andre opgaver såsom overvågning, underretninger og fungerer som en konfigurationsudbyder for klienter.

Men, hvad sker der, når Sentinel registrerer en Redis-server som nedad? Vi finder ud af i denne artikel, hvordan man opretter en komplet meget 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 belastningsafbalanceringsmiljø

Scenariet, som vi vil opnå i denne artikel, er vist i diagrammet nedenfor.

Redis Sentinel kontrollerer status for alle Redis-knudepunkter og ændrer Redis-serverens rolle, når der opdages en fejl.

Lastbalanceren kontrollerer også tilstanden, men den gør det med jævne mellemrum hvert sekund. Der kan være tilfælde, hvor Sentinel opdager problemet, men belastningsafbalanceren kan tage op til et par sekunder at indse. Dette kan føre til, at balanceren sender anmodninger til den forkerte master, som er den, der lige er mislykkedes, men er blevet skiftet af Sentinel.

Zevenet tilbyder en måde at løse dette problem på, udfører L4-gården regelmæssigt kontrol. På den anden side er der også strømmen, der sendes til backend, der ikke indeholder nogen tidligere kontrol. Når gårdens værge er klar over, at backend ikke er lydhør, lyder det alarm, hvilket indikerer, at strømmen ikke skal gå denne vej.

I betragtning af dette har vi på den ene side kontrollerne og på den anden side anmodningerne. Hvis kontrollen mislykkes, sendes strømmen straks til en anden knude. Selv de igangværende andragender omdirigeres til en anden online knude. Dette vil blive forklaret mere detaljeret i konfigurationen.

Redis konfiguration af belastningsbalancering

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

Derefter skal vi til Redis virtual server oprette en L4xNAT gård. 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 fanen, og sørg for, at protokolletypen er TCP.

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

Genovervågning og avanceret sundhedskontrol

Endelig er Farm Guardian-kontrollerne påkrævet for at sikre, at vi altid bruger online-knudepunktet, som forklaret sagen før. Til dette skal vi konfigurere følgende som Farm Guardian-kommandoen:

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

Hvor HOST og PORT erstattes af hver backends Redis-server IP-adresse og port. Kommandoen info replikering får informationen fra Redis-serveren for at verificere, hvilken master der er i live, forbindelser vil kun blive omdirigeret til serveren, hvis rollemasteren er præsenteret, så snart Sentinel ændrer rollen, vil belastningsbalanceren registrere ændringen og Redis server markeres som ned. Flaget -t er det antal sekunder, som Farm Guardian vil vente på et Redis-serverrespons, og hvis timeoutet nås uden svar, markeres Redis-serveren som ned. På den anden side, når Redis-serverens sundhed er gendannet, vil den blive op igen.

Men inden du ændrer Farm Guardian til netop denne gård, skal du gå til Overvågning> Farmguardian og klik derefter på Handling> Opret landmand.

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

Endelig skal du kopiere ovennævnte kommando i Kommando parameter og udfør konfigurationen som vist nedenfor.

Klik på Indsend.

Vælg nu denne nye Farm Guardian avanceret sundhedstjek i den virtuelle Redis-tjeneste. Gå tilbage til LSLB> Gårde, til gården oprettet med navn RedisFarm, Serviceydelser fane. Til sidst skal du vælge check_redis_master kommando lige oprettet under Sundhedschecks til backend.

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

Referencer

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

Del på:

Dokumentation i henhold til GNU Free Documentation License.

Var denne artikel til hjælp?

Relaterede artikler