Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kokia yra geriausia „Redis“ klasterio konfigūravimo praktika


Kokia yra geriausia „Redis“ klasterio konfigūravimo praktika


„Redis Cluster“ yra populiarus sprendimas, skirtas mastelio keitimo diegimui, kad būtų pasiektas didesnis prieinamumas, tolerancija gedimams ir duomenų spartos per kelis mazgus. Tinkama „RedIs“ klasterio konfigūracija apima keletą geriausių praktikų, užtikrinančių optimalų našumą, patikimumą ir valdymą.

klasterio architektūra ir mazgo konfigūracija

„Redis“ klasteriui reikia bent trijų pagrindinių mazgų, kad būtų galima patikimai veikti. Idealiu atveju gamybos klasteryje turėtų būti mažiausiai šeši mazgai, kiekviename meistre yra viena ar kelios replikos. Ši sąranka užtikrina aukštą prieinamumą, leidžiančią automatinį perpildymą, jei bet kuris pagrindinis mazgas nepavyks. Kiekvienas mazgas veikia klasterio režimu ir turi būti įjungtas konkrečiomis konfigūracijomis, įskaitant:

- `Įgalinta klasteriu Taip`, kad įjungtumėte klasterio režimą kiekviename„ Redis “egzemplioriuje.
-„Cluster-Config-File“, nurodant failą, kuriame išsaugoma klasterio mazgo būsena (pvz., „Nodes.conf“).
-„Klasterių mazgo-laikas“, apibrėžiant maksimalų laiką, kurį mazgas gali būti nepasiekiamas prieš laikant nesėkmę (paprastai nustatyta nuo 5000 iki 15000 milisekundžių).

„Cluster-Config-File“ valdo „Redis“ automatiškai ir neturi būti redaguojama rankiniu būdu, nes ji palaiko kritinę būsenos informaciją, tokią kaip mazgų ID, žemėlapiai ir lizdo nuosavybė. Kiekvienas mazgas „Startup“ priskiria sau unikalų mazgo ID, kuris išlieka per visą jo gyvenimą, net jei pasikeis IP ar prievadas.

Aparatūros ir tinklo sąranka

Mazgai turėtų būti dislokuoti atskirose fizinėse ar virtualiose mašinose, kad būtų išvengta vieno gedimo taškų. Tinklo ryšys tarp mazgų turi leisti tiek kliento ryšių prievadams (paprastai TCP 6379 arba naudojamą paslaugų prievadą), tiek klasterio magistralės prievadą (antrasis prievadas, paprastai TCP paslaugų prievadas + 10000, pvz., 16379), skirtas klasterių vidiniam ryšiui.

Atidžiai sukonfigūruokite tinklo sąsajas ir ugniasienes, kad šis srautas tarp mazgų ir pasirinktinai tarp klientų ir klasterio mazgų būtų galima. „Bind“ direktyvos nustatymas su konkrečiomis privačiomis IP, o ne prisijungimas prie visų sąsajų padidina saugumą.

patvarumas ir duomenų patvarumas

Įgalinkite patvarumo mechanizmus, tokius kaip RDB momentiniai vaizdai arba AOF (tik priedų failas), atsižvelgiant į reikiamą duomenų patvarumą ir našumo kompromisus. AOF suteikia geresnį patvarumą registrant kiekvieną rašymo operaciją, tačiau gali pridėti latentinį ir pridėtines pridėtines išlaidas. RDB momentinių nuotraukų derinimas su AOF gali padėti subalansuoti našumą ir ilgaamžiškumą.

„Pridedama taip“ direktyva įgalina AOF režimą. Šie nustatymai turėtų būti atidžiai suderinti pagal darbo krūvio modelius ir priimtinus duomenų praradimo langus.

Atminties valdymo ir iškeldinimo politika

Konfigūruokite „MaxMemory“ nustatymą, kad įsitikintumėte, jog „Redis“ tinka turimoje mazgo atmintyje. Pasirinkite tinkamą iškeldinimo politiką, naudodami „MaxMemory-Policy“, pavyzdžiui, „Allkeys-LRU“, kad galėtumėte naudoti mažiausiai neseniai naudojamą algoritmą visuose klavišuose, kai pasiekiami atminties ribos. Nuoseklus atminties naudojimo ir HIT/Miss santykio stebėjimas yra labai svarbus.

„Redis“ klasteris geriausiai veikia, kai duomenų rinkinys visiškai tinka kiekvieno mazgo atmintyje. Venkite per didelio apsikeitimo ar atminties pertekliaus.

lizdų valdymas ir duomenų paskirstymas

Klasteris padalija raktų erdvę į 16 384 maišos laiko tarpsnius, kurie yra paskirstomi visuose pagrindiniuose mazguose. Kurdami klasterį, įsitikinkite, kad visus laiko tarpsnius uždengia pagrindinis mazgas. Remiantis maišos lizdo skaičiavimu, klientai turi būti gerai suprantami, kad pakeltų užklausas į teisingą mazgą.

Venkite operacijų, susijusių su keliais klavišais, susietais su skirtingais laiko tarpsniais, nes joms reikalingos ribotos ar mažiau veiksmingos kryžminio plyšio komandos.

Naudokite tokius įrankius kaip „Redis-cli“-„Cluster Create“, norėdami automatiškai įkrauti klasterius su tinkamu lizdo paskirstymo ir replikos priskyrimu.

kliento konfigūracija klasterio supratimui

Konfigūruokite klientų bibliotekas, kad būtų galima tvarkyti „Redis“ klasterio topologiją, keičiasi grakščiai. Daugelis klientų bibliotekų teikia klasterių palaikymą, įskaitant automatinį klasterių mazgų atradimą ir pertvarkymą, nes jos nepavyksta arba pertvarkyti laiko tarpsnius. Tai apsaugo nuo klientų klaidų ir pagerina patikimumą mazgo perpildymo ar mastelio keitimo operacijų metu.

Klientai turėtų būti sukonfigūruoti pakartoti perkeltus arba paprašyti peradresavimo ir išlaikyti atnaujintus klasterio būsenos vaizdus.

Saugumo sumetimai

Saugūs klasterio mazgai, įgalindami slaptažodžio autentifikavimą („Reikalaujama“ direktyva), ribojant tinklo prieigą per ugniasienės taisykles ir apribojant paveiktas sąsajas per „Bind“ konfigūraciją. Jei norite apsaugoti duomenis per tranzitą, naudokite TLS šifravimą.

Išjunkite apsaugotą režimą, kai paleidžiate „Redis“ klasterio režimu, tačiau užtikrinkite, kad tinklo konfigūracijos išskirtų klasterį nuo nepatikimų klientų.

Stebėjimas ir priežiūra

Įdiekite išsamų klasterių sveikatos stebėjimą, įskaitant mazgo prieinamumą, latentinį, atminties naudojimą, replikacijos vėlavimą ir klasterio būsenos pokyčius. Tokios priemonės kaip „Redis Sentinel“, trečiųjų šalių stebėjimo platformos ar debesų teikėjo sprendimai turėtų būti veiklos strategijos dalis.

Reguliariai išbandykite perėjimo mechanizmus ir atlikite kontroliuojamų mazgų paleidimą arba mastelio keitimo pratimus, kad patikrintumėte klasterio atsparumą.

Performance Tuning

„Tune Redis“ ir klasterio konfigūracija, pagrįsta darbo krūvio specifika:

- Sumažinkite blokavimo komandas ir naudokite vamzdynus arba LUA scenarijus, kad optimizuotumėte pralaidumą.
-Sureguliuokite `klasterio mazgo laiką, atsižvelgiant į tinklo delsos charakteristikas, kad būtų išvengta klaidingų failų.
- Norėdami optimizuoti lizdų paskirstymą, naudokite nuoseklų maišą ir intelektualųjį raktą.
- Venkite didelių raktų ar verčių ir apsvarstykite galimybę suskaidyti didelius daiktus į mažesnius gabaliukus.
- Naudokite „Redis Cluster“ vietinius mechanizmus horizontaliai mastelio keitimui, pridėdami arba pašalindami mazgus ir subalansuodami laiko tarpsnius.

atsarginė kopija ir atkūrimas

Projektavimo atsarginės strategijos, suderintos su klasterio sąranka. Naudokite periodinius RDB momentinius vaizdus iš pagrindinių mazgų ar replikų ir saugokite atsargines kopijas išorėje. Venkite atkurti atsargines kopijas tiesiogiai tiesioginiame klasteryje be tinkamo lizdo ir mazgo būsenos sinchronizacijos.

Norėdami atkurti, naudokite procedūras, kurias rekomenduoja „Redis“, kad būtų galima rekonstruoti klasterius iš išsaugotų konfigūracijų ir atsarginių kopijų.

Santrauka

Geriausia „Redis“ klasterio konfigūracijos viršelio praktika:

- Nustatykite bent tris pagrindinius mazgus su replikomis, skirtoms failover.
-užtikrinti tinkamas su klasteriu susijusias konfigūracijos direktyvas („klasterių įgalintas“, „klasterio-config-fail“, „klasterio mazgo laikas“).
- Tinkamos aparatinės įrangos mazgų diegimas su teisingais tinklo nustatymais kliento ir klasterių magistralės ryšiui.
- Įgalinkite atkaklumo ir atminties bei iškeldinimo politikos derinimą, kad atitiktų darbo krūvio poreikius.
- efektyviai valdyti maišos laiko tarpsnius ir užtikrinti, kad klientai suprastų klasterį.
- Klasterio užtikrinimas autentifikavimo ir tinklo valdikliais.
- reguliariai stebėti klasterio sveikatą ir našumą.
- Atidžiai planuojant atsarginę kopiją, atkūrimą ir mastelio keitimo operacijas.

Taikant šią geriausią praktiką, užtikrinama tvirta, keičiama ir labai prieinama „Redis“ klasterio aplinka, tinkama gamybos darbo krūviams. Aukščiau pateiktos temos apima esminius veiklos, architektūrines ir saugumo aspektus, susijusius su „Redis“ klasterių diegimu.