Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā Redis klasteris apstrādā mezgla kļūmes


Kā Redis klasteris apstrādā mezgla kļūmes


Redis Cluster apstrādā mezglu neveiksmes, apvienojot neveiksmes noteikšanu, replikas veicināšanu un klastera stāvokļa pārvaldību, lai nodrošinātu turpmāku darbību un datu pieejamību. Tas ir paredzēts, lai izdzīvotu dažu mezglu neveiksmes, automātiski reklamējot replikācijas, lai aizstātu nepieejamus meistarus, saglabājot galvenās telpas integritāti, vienlaikus samazinot datu zaudēšanas riskus.

kopas komunikācija un kļūmju noteikšana

Redis klastera mezgli sazinās, izmantojot speciālu uz TCP balstītu bināro protokolu, ko sauc par Redis Cluster Bus. Katrs mezgls uztur savienojumus ar visiem citiem klastera mezglu, izmantojot šo kopni, nodrošinot nepārtrauktas veselības pārbaudes un stāvokļa izplatīšanos. Mezgli periodiski nosūta ping paketes, lai apstiprinātu vienaudžu darbības stāvokli un dalītos ar informāciju par klastera stāvokli. Šajā saziņā tiek izmantots tenku protokols, lai efektīvi izplatītu klasteru informāciju, palīdzot mezgla kļūmju noteikšanai.

Mezgli uzrauga vienaudžus, izmantojot aktīvo ping mehānismu. Ja mezgls nereaģē uz pingiem konfigurētā taimauta periodā (Node_timeout), tas tiek atzīmēts kā, iespējams, neizdodas ar PFAIL statusu. Šī ir provizoriska kļūmes norāde, kas nozīmē, ka mezgls varētu būt nesasniedzams vai uz leju, bet tas vēl nav apstiprināts. Ja PFAIL stāvoklis saglabājas, un to apstiprina lielākā daļa galveno mezglu, mezgls tiek atzīmēts kā neizdodas, norādot, ka tas tiek uzskatīts par nesaspējamu vai klasterim. Šis uz vienprātību balstīts kļūmju noteikšanas mehānisms palīdz novērst nepatiesus pozitīvus rezultātus, identificējot neveiksmīgus mezglus.

Pārvaldīt galveno mezgla kļūmes

Kad galvenais mezgls tiek atzīmēts kā neizdodas, Redis klasteris ierosina kļūmjpārlēces procesu, lai veicinātu vienu no tā replikām, lai kļūtu par jauno meistaru. Šo procesu automātiski iedarbina klastera neveiksmes detektors bez administratīvas iejaukšanās. Reklamētā replika pārņem atbildību par hash laika nišu apkalpošanu, ko iepriekš pārvaldījusi neveiksmīgais meistars, nodrošinot, ka klasteris var turpināt apkalpot pieprasījumus bez manuālas pārkonfigurācijas.

Kļūmjpārlēce notiek tikai tad, ja ir pieejama vismaz viena kopija un sasniedzama, lai to reklamētu. Ja nepastāv piemērota replika, klasteris nonāk kļūdas stāvoklī, kur tā pārstāj pieņemt vaicājumus, lai novērstu nekonsekventu datu pasniegšanu. Tas uzsver, cik svarīgi ir konfigurēt katram meistaram, lai saglabātu augstu pieejamību.

kļūmjpārlēces mehānika un drošība

Kļūmju laikā replika gaida, lai pilnībā sinhronizētu ar galveno, kuru tas aizstāj, nodrošinot, ka tā ir apstrādājusi visus neapstiprinātos atjauninājumus, lai izvairītos no datu zaudēšanas. Tas to sasniedz, saskaņojot replikācijas nobīdi ar kapteini, tāpēc tam ir atjaunināta datu kopa pirms galvenā lomas uzņemšanās.

Pēc sinhronizācijas replika pieprasa jaunu konfigurācijas laikmetu no lielākās daļas meistaru. Epoch ir loģisks laika zīmogs, ko izmanto, lai izsekotu konfigurācijas izmaiņas klasterī. Pēc vienprātības iegūšanas Replica pārraida atjaunināto konfigurāciju visiem mezgliem, paziņojot par tā veicināšanu Master un vecā meistara pazemināšanos par repliku vai noņemšanu.

Vecais meistars, atgūstoties, saņem šo konfigurācijas atjauninājumu un pārtrauc vaicājumus kā kapteini. Tas novirza klienta pieprasījumus jaunajam meistaram, nodrošinot, ka klienti pārredzami turpina mijiedarboties ar kopu bez manuālas iejaukšanās.

Tīkla nodalījumu apstrādes un dalīto smadzeņu scenāriji

Redis klasteris izmanto vairākuma vienprātību, lai izvairītos no šķelšanās smadzeņu problēmām tīkla nodalījumu laikā. Meistars tiks galā tikai tad, ja tas nav sasniedzams vairāk nekā pusei klastera meistaru. Masters, kas nevar sazināties ar vairākumu, pārstāj pieņemt rakstus, novēršot atšķirīgus datu stāvokļus starp nodalījumiem.

Tomēr, ja mazākuma nodalījumā ir klienti, kuri turpina rakstīt pie meistara pirms kļūmjpārlēces, pastāv rakstīšanas zaudēšanas potenciāls. Redis mazina šo risku, atsakoties no rakstāmam mazākuma pusē pēc taimauta un vairākuma pusē, ātri neizdodas pār nesaspiesto meistaru.

Neskatoties uz šiem piesardzības pasākumiem, rakstīšanas laikā var zaudēt kļūmjpārlēces logu laikā, jo Redis izmanto asinhrono replikāciju starp meistariem un replikām. Tā kā atbildes uz komandām un replikācijas atjauninājumiem tiek nosūtītas gandrīz vienlaicīgi, rakstu zaudēšanas logs ir ļoti šaurs, bet ne neiespējami.

konfigurācijas opcijas, kas ietekmē kļūmes apstrādi

Redis klasteris ietver konfigurācijas iespējas, kas ietekmē pieejamību un uzvedību mezgla kļūmju laikā:

-`klasteru kropļošana-pilna pārklājums" (noklusējuma jā): klasteris pārtrauc pieņemt rakstus, ja mezgla kļūmju dēļ tiek atklāta kāda taustiņu telpas daļa, nodrošinot spēcīgu datu konsekvenci.
-`klastera-all-lasījumi-kad-pēc noklusējuma Nr): kontrolē, vai lasīšana ir atļauta, kad klasteris atrodas kļūmes stāvoklī. To iespējošana ļauj nolasīt no mezgliem pat daļēju kļūmju laikā, bet var riskēt ar novecojušajiem datiem.

Šie iestatījumi ļauj administratoriem līdzsvarot pieejamību un konsekvenci, pamatojoties uz lietojumprogrammu prasībām.

Manuāls kļūmjpārlēces atbalsts

Papildus automātiskajam kļūmjpārlēcei Redis Claster nodrošina manuālu kļūmjpārlēces komandu, kuru var izdot replikas mezglos. Tas ir noderīgi uzturēšanas vai pārbaudes scenārijiem, kad administrators vēlas apmainīt galvenās lomas, negaidot faktisku neveiksmes notikumu.

Manuālais kļūmjpārlēces darbojas, bloķējot klientus pašreizējā meistarā, gaidot, kamēr replika pilnībā pieķeras, un pēc tam reklamējot repliku ar vienmērīgu atomu pāreju. Tas nodrošina datu zaudēšanu lomas maiņas laikā un minimāli traucējumi klientiem.

kopsavilkums

Redis klasteris apstrādā mezgla kļūmes galvenokārt, izmantojot kļūdu noteikšanu un kļūmjpārlēces sistēmu, pamatojoties uz nepārtrauktu uzraudzību, izmantojot Redis kopas kopni un tenku protokolu. Mezgli atklāj nesasniedzamus meistarus un automātiski reklamē replikas pēc vienprātības procesa, kurā vairākums meistaru prasa vienoties par neveiksmi. Kļūmjpunkti ir paredzēti, lai samazinātu datu zudumu, nodrošinot, ka replikas ir pilnībā sinhronizētas pirms paaugstināšanas. Tīkla nodalījumi tiek pārvaldīti, izmantojot vairākuma lēmumus, lai novērstu smadzeņu apstākļus, lai gan asinhronā replikācijas dēļ var rasties šaurs rakstīšanas zaudējumu logs. Konfigurācijas opcijas ļauj noskaņot pieejamību pret konsekvenci neveiksmju laikā, un manuālās kļūmjpārlēces komandas nodrošina operatorus kontroli apkopei.

Šī arhitektūra ļauj Redis klasterim nodrošināt augstu pieejamību un nodalījumu toleranci ar automātisku atveseļošanos no galveno mezgla kļūmēm, nodrošinot, ka klasteris paliek operatīva un konsekventa neveiksmes scenārijos.