Redis Sentinels

Redis Sentinels



Pieņemsim scenāriju, ka jūsu ražošanā ir tikai viens Redis gadījums, un tas kādā brīdī kāda iemesla dēļ neizdodas. Jūsu lietojumprogramma saglabā datus kešatmiņā Redis datu veikalā, un tagad jūsu vienīgais datu avots ir miris. Viens no veidiem, kā kontrolēt šāda veida scenārijus, ir uzturēt galveno-pakalpojumu arhitektūru, kurā vergi var replicēt galveno mezglu, līdz tas atgriežas. Redis kopas līdz zināmai pakāpei atbalsta augstu pieejamību, izmantojot galvenās kopijas pieeju. Redis Sentinel ir vēl viena pieeja, kas nodrošina uzticamāku veidu, kā uzturēt Redis gadījumu augstu pieejamību. Tas pārrauga Redis galvenā mezgla kļūmes un nekavējoties aktivizē kļūmjpārlēces procesu, kas pārveidos esošo pakārtoto mezglu par pilnīgi jaunu galveno mezglu.







Turklāt Redis Sentinel darbojas kā starpnieks, kur klienti izveido savienojumu un pieprasa jaunāko galvenā mezgla IP adresi. Tātad savienotais sargs nekavējoties nodrošina galvenā mezgla adresi.



Turklāt galvenā mezgla kļūme tiek apstiprināta, ja vairāki uzraugi ir vienojušies, ka konkrētais galvenais nav sasniedzams vai pieejams. Tādējādi tiek pabeigta kļūmju noteikšanas fāze, un kļūmjpārlēces process sākas uzreiz. Tādējādi Redis sentinel var uzskatīt par izplatītu sistēmu ar īpašām īpašībām.



Sarginieku vienošanās ir balstīta uz kvoruma vērtību, kas tiks apspriesta nākamajā sadaļā.





Kuru Vērtība

Kvoruma vērtība ir maksimālais kontrolpunktu skaits, par ko jāvienojas, kad galvenais mezgls nedarbojas. Šo vērtību izmanto tikai, lai identificētu kļūmi galvenajā mezglā. Kļūmjpārlēces process sākas ar vairāku pieejamo kontrolmezglu autorizāciju, lai turpinātu ar atlasīto sargpunktu kā vadītāju.

Redis Sentinel iezīmes

Sentinel ir zināms, ka nodrošina Redis datu krātuves augstas pieejamības mehānismu. Papildus tam var uzskaitīt vairākas citas iespējas.



  • Sentinel nepārtraukti uzrauga galveno un pakārtoto mezglu statusu jūsu Redis sistēmā.
  • Ikreiz, kad jūsu Redis instancēs rodas kļūme vai kaut kas nav kārtībā, sargs var informēt administratoru vai pievienotās lietojumprogrammas, izmantojot sentinel API.
  • Kļūmjpārlēces fāzi vada sargs, reklamējot kopiju kā jauno galveno. Atlikušās kopijas ir konfigurētas, lai izmantotu jauno šablonu. Visbeidzot, attiecīgie klienti saņems paziņojumu par jauno galvenā mezgla adresi.
  • Turklāt Redis sentinel ir savienoto klientu konfigurācijas nodrošinātājs, kurā klienti var pieprasīt pašlaik pieejamās galvenās instances adresi, un, ja noticis pēkšņs sabrukums, sargs ir apņēmies nekavējoties nospiest jauno galvenā mezgla adresi.

Nākamajā sadaļā mēs konfigurēsim Redis sentinels ar galvenās kopijas gadījumiem un mezglu pārraudzībai izmantosim Sentinel API.

Sentinel konfigurācija

Pirmkārt, mēs izveidojam divus Redis gadījumus portos 7000 un 7001. Ports 7000 būs galvenais mezgls, bet otrs atkārto galveno mezglu. Abos gadījumos tiek izmantoti attiecīgi šādi konfigurācijas faili:

Galvenā mezgla konfigurācija

osta 7000
klastera iespējots Nr
cluster-config-file nodes.conf
klastera-mezgla taimauts 5000
papildus

Vergu mezgla konfigurācija

osta 7001
klastera iespējots Nr
cluster-config-file nodes.conf
klastera-mezgla taimauts 5000
papildus

Abi gadījumi sāksies, nodrošinot ar katru saistīto konfigurācijas failu. Mēs varam izmantot šo komandu, lai atsevišķi palaistu Redis gadījumus:

redis-server redis.conf

Izveidosim savienojumu ar Redis instanci, kas sākta portā 7001 šādi:

redis-cli -lpp 7001

Tagad mēs varam padarīt šo gadījumu par galveno, kas darbojas portā 7000, kopiju. REPLICAOF komandu var izmantot šādi:

127.0.0.1 kopija 7000

Kā gaidīts, instance, kas darbojas 7001. portā, kļuva par galvenā mezgla kopiju, kas darbojas 7000. portā.

Tagad mēs esam gatavi konfigurēt trīs Redis uzraugus, lai uzraudzītu iepriekš minēto galveno instanci. Mums ir jābūt trim konfigurācijas failiem, lai izveidotu trīs kontrolpunktus portos 5000, 5001 un 5002, kā parādīts tālāk.

Katrs sentinel.conf fails izskatās šādi, izņemot to, ka tiks mainīts porta numurs:

osta 5000
Sentinel monitor masternode 127.0.0.1 7000 divi
sardzes uz leju-pēc milisekundes masternode 5000
sardzes kļūmjpārlēces-noildze masternode 60 000

Tagad ir pienācis laiks palaist trīs uzraugus. Varat izmantot redis-sentinel izpildāmo failu kopā ar ceļu uz sentinel.conf konfigurācijas failu, lai izveidotu sarginstanci. Pretējā gadījumā mēs joprojām varam izsaukt redis-servera izpildāmo failu, norādot ceļu uz sentinel.conf un karogs – sargs .

Sāksim katru sargu, izmantojot šādu komandu:

redis-server sentinel.conf -- Sentinel

Pirmais sargs ir iedarbināts 5000. portā. Tāpat varat palaist arī pārējās divas instances.

Tagad mūsu Redis sentinel iestatīšana ir iestatīta un darbojas, kā parādīts šajā attēlā:

Nākamajā sadaļā mēs izpētīsim vairāk par Sentinel API un to, kā mēs varam to izmantot, lai izgūtu informāciju, kas saistīta ar Redis galveno mezglu.

Sentinel API

Redis nodrošina atsevišķu Sentinel API, lai pārraudzītu saistītos šablonus un kopijas, abonētu paziņojumus un modificētu sardzes iestatījumus. Turklāt turpmāk ir uzskaitīti vairāki lietojumi.

  • Pārbaudiet uzraudzītā Redis galvenā un pakārtotā instanču statusu
  • Sīkāka informācija par citiem sargiem
  • Kļūmjpārlēces gadījumā saņemiet push stila paziņojumus no uzraugiem

Komandu SENTINEL var izmantot kopā ar ar to saistītajām apakškomandām, lai vaicātu, atjauninātu vai iestatītu Redis uzraugus un uzraudzītos mezglus.

Pārbaudiet galvenā mezgla statusu

Ir ļoti svarīgi laiku pa laikam uzraudzīt vai pārbaudīt galvenā mezgla stāvokli. Lai izgūtu galveno informāciju, var izmantot šādu Sentinel API komandu:

SENTINEL MEISTARS < uzraudzītais_master_vārds >

monitored_master_name: Galvenā mezgla nosaukums, kas norādīts iepriekšējā darbībā izveidotajā uzrauga konfigurācijas failā.

Izmantosim šo komandu, lai vaicātu galvenā statusa iestatījumos. Mūsu gadījumā galvenā mezgla nosaukums ir 'masternode'.

SENTINEL MASTER masternode

Ir izgūtas vairākas informācijas daļas, un dažas no tām ir svarīgas, piemēram, num-slaves, karogi un num-other-sentinels.

The karogi īpašums ir iestatīts uz meistars tas nozīmē, ka meistaram ir laba veselība. Ikreiz, kad galvenais mezgls nedarbojas, s_down vai o_down tiks parādīts karogs. Īpašums num-citu-sentinels ir iestatīts uz 2, kas nozīmē, ka Redis sargs jau atpazina divus pārējos galvenā mezgla kontrolpunktus. Turklāt, num-vergi rekvizīts parāda galvenā mezgla pieejamās kopijas. Šajā gadījumā tas ir iestatīts uz 1, jo mums ir tikai viena kopija.

Iegūstiet informāciju par pievienotajām replikām

Mēs varam pārbaudīt ar galveno mezglu saistītās kopijas, izmantojot šādu apakškomandu SENTINEL:

SENTINEL REPLIKAS < monitored_master_name >

Šajā piemērā galvenais nosaukums ir “masternode”.

SENTINEL replikas masternode

Kā gaidīts, Sentinel atklāja vergu mezglu, kas darbojas portā 7001.

Iegūstiet informāciju par saistītajiem Sentinels

Līdzīgi mēs varam vaicāt informāciju par citiem kontrolpunktiem, kas saistīti ar pašreizējo galveno mezglu, izmantojot šādu apakškomandu SENTINEL:

SENTINEL SENTINELS < galvenā_mezgla_nosaukums >

Šajā gadījumā mēs iegūsim informāciju, kas saistīta ar galveno mezglu ar nosaukumu “masternode”.

SENTINEL sentinels masternode

Iegūstiet galvenā mezgla adresi

Kā minēts iepriekšējā sadaļā, Redis sentinel ir savienoto klientu konfigurācijas nodrošinātājs. Tātad tas spēj nodrošināt pašlaik darbojošos galvenā mezgla IP adresi un portu pieprasītajiem klientiem. Lai izgūtu minēto informāciju, var izmantot šādu Sentinel API apakškomandu.

SENTINEL GET-MASTER-ADDR-BY-NAME < galvenā_mezgla_nosaukums >

Izpildīsim iepriekš minēto komandu mūsu scenārijam šādi:

Sentinel get-master-addr-by-name masternode

Mēs apspriedām tikai dažas Sentinel API komandas. Ir pieejamas vairākas citas apakškomandas, piemēram, Sentinel-failover, Sentinel info-cache, Sentinel Masters uc Turklāt daudzas komandas ir pieejamas arī administrēšanas vajadzībām. Nākamajā sadaļā mēs koncentrēsimies uz Redis sentinel kļūmjpārlēces procesu.

Sentinel kļūmjpārlēces process

Tā kā mūsu sargs ir konfigurēts, mēs varam pārbaudīt kļūmjpārlēces fāzi. Nosūtīsim mūsu galveno mezglu miega režīmā uz 300 sekundēm, kas simulē galvenā mezgla kļūmi.

atkļūdošana Gulēt 300

Galvenais mezgls, kas darbojas 7000. portā, tagad nedrīkst būt sasniedzams. Tādējādi saistītie uzraugi pamanīs, ka kapteinis nav pieejams ar +sdown notikumu. Pēc tam tas tiks iestatīts uz +odown kur 2 kontrolpunkti apstiprina, ka galvenais mezgls ir nolaists saskaņā ar kvoruma vērtību. Visbeidzot, sāksies kļūmjpārlēces fāze, un ideālā gadījumā replika ir jāpaaugstina par jauno galveno.

Vēlreiz pārbaudīsim galvenā mezgla IP adresi un portu.

Sentinel get-master-addr-by-name masternode

Kā gaidīts, iepriekšējā replika ir paaugstināta par jauno galveno, kas nozīmē, ka uzrauga kļūmjpārlēces process ir veiksmīgs. Ar to ir pabeigta mūsu trīs uzraugu iestatījumu izvietošana un testēšana vienam galvenās kopijas pārim.

Secinājums

Redis sentinel ir visuzticamākā pieeja, lai nodrošinātu konkrētas Redis galvenās replikas instances augstu pieejamību. Sargs spēj pārraudzīt, paziņot un iniciēt automātisku kļūmjpārlēci bez cilvēka iejaukšanās. Vairāki kontrolpunkti kopā vienojas arī par to, ka galvenais mezgls nav sasniedzams un kvoruma vērtība tiek izmantota kā maksimālais kontrolpunktu skaits, par kuriem jāvienojas, pārbaudot galvenās instances pieejamību. Redis sentinel piedāvā viegli lietojamu API, lai izgūtu informāciju par galvenā mezgla un saistīto kopiju stāvokli un veiktu arī administratīvos uzdevumus.