Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kāda ir labākā prakse Redis klastera konfigurēšanai


Kāda ir labākā prakse Redis klastera konfigurēšanai


Redis Cluster ir populārs risinājums Redis izvietošanas mērogošanai, lai sasniegtu augstāku pieejamību, kļūmju toleranci un datus, kas rodas vairākos mezglos. Pareiza Redis klastera konfigurācija ietver vairākas labākās prakses, kas nodrošina optimālu veiktspēju, uzticamību un vadāmību.

klasteru arhitektūra un mezgla konfigurācija

Redis klasterim ir nepieciešami vismaz trīs galvenie mezgli, lai darbotos droši. Ideālā gadījumā ražošanas klasterī jābūt vismaz sešiem mezgliem, un katram meistaram ir viena vai vairākas kopijas. Šī iestatīšana nodrošina augstu pieejamību, ļaujot automātiskam kļūmjpārlēcei, ja jebkurš galvenais mezgls neizdodas. Katrs mezgls darbojas klastera režīmā, un tai jābūt iespējotām īpašām konfigurācijām, ieskaitot:

- `ar klasteru iespējots jā`, lai katrā Redis instancē iespējotu klastera režīmu.
-`Cluster-Config-File`, kas norāda failu, kurā tiek saglabāts klasteru mezgla stāvoklis (piemēram,` mezgli.conf`).
-`klasteru mezgla timeout`, kas nosaka mezglu, kad mezgls var būt neizpildāms, pirms tiek uzskatīts par neizdošanos (parasti iestatīts no 5000 līdz 15000 milisekundēm).

“Kopu-konfigurēšanas failu” automātiski pārvalda Redis, un to nedrīkst rediģēt manuāli, jo tā saglabā kritiska stāvokļa informāciju, piemēram, mezgla ID, kartēšanu un spēļu automātu īpašumtiesības. Katrs mezgls piešķir sev unikālu mezgla ID startup, kas saglabājas tā dzīves laikā, pat ja mainās IP vai ports.

aparatūra un tīkla iestatīšana

Mezgli jāizvieto atsevišķās fiziskajās vai virtuālajās mašīnās, lai izvairītos no atsevišķiem kļūmes punktiem. Tīkla savienojamībai starp mezgliem jāļauj gan klienta komunikācijas portiem (parasti TCP 6379, gan izmantotajam pakalpojumu poram), gan klastera kopnes portu (otrais ports parasti TCP pakalpojumu ports + 10000, piemēram, 16379) klasteru interneta komunikācijai.

Rūpīgi konfigurējiet tīkla saskarnes un ugunsmūri, lai ļautu šai trafikai starp mezgliem un pēc izvēles starp klientiem un klastera mezgliem. Direktīvas “Bind” iestatīšana ar konkrētām privātām IP, nevis saistīšanās ar visām saskarnēm, uzlabo drošību.

Noturība un datu izturība

Iespējot noturības mehānismus, piemēram, RDB momentuzņēmumus vai AOF (tikai failu) atkarībā no nepieciešamajiem datu izturības un veiktspējas kompromisiem. AOF nodrošina labāku izturību, reģistrējot katru rakstīšanas darbību, bet var pievienot latentumu un IO virs galvas. RDB momentuzņēmumu apvienošana ar AOF var palīdzēt līdzsvarot veiktspēju un izturību.

Direktīva “Papildus jā” nodrošina AOF režīmu. Šie iestatījumi ir rūpīgi jānobriež atbilstoši darba slodzes modeļiem un pieņemamiem datu zaudēšanas logiem.

Atmiņas pārvaldības un izlikšanas politika

Konfigurējiet iestatījumu “Maxmemory”, lai nodrošinātu, ka REDIS iekļaujas pieejamajā mezgla atmiņā. Atlasiet atbilstošu izlikšanas politiku, izmantojot `maxmemory-politicy`, piemēram,` AllKeys-LRU`, lai visos atslēgās izmantotu vismazāk izmantoto algoritmu, kad tiek sasniegti atmiņas ierobežojumi. Kritiska ir konsekventa atmiņas izmantošanas un hit/miss rādītāja uzraudzība.

Redis klasteris vislabāk darbojas, ja datu kopa pilnībā iederas katrā mezglā. Izvairieties no pārmērīgas apmaiņas vai atmiņas pārņemšanas.

Slotu pārvaldība un datu izplatīšana

Klasteris sadala atslēgas telpas 16 384 hash slotos, kas tiek sadalīti visos galvenajos mezglos. Veidojot kopu, pārliecinieties, vai uz visiem laika nišām pārklāj galvenais mezgls. Klientiem ir jāapzinās kopas, lai maršrutētu vaicājumus uz pareizo mezglu, pamatojoties uz hash slota aprēķinu.

Izvairieties no operācijām, kas saistītas ar vairākām taustiņiem, kas kartēti dažādās laika nišās, jo tām ir vajadzīgas ierobežotas vai mazāk efektīvas krusteniskās slot komandas.

Izmantojiet tādus rīkus kā `Redis-Cli-CLASTER CREATE`, lai sāknēšanas klasteros automātiski ar pareizu laika nišu sadalījumu un replikas piešķiršanu.

Klienta konfigurācija klasteru izpratnei

Konfigurējiet klienta bibliotēkas, lai rīkotos ar Redis klasteru topoloģijas izmaiņām graciozi. Daudzas klientu bibliotēkas nodrošina kopu atbalstu, ieskaitot automātisku klasteru mezglu atklāšanu un pārkonfigurāciju, jo tie neizdodas vai pārkārto slotus. Tas novērš klienta kļūdas un uzlabo uzticamību mezglu kļūmju vai mērogošanas darbību laikā.

Klienti ir jākonfigurē, lai mēģinātu pārvietot vai lūgt novirzīšanu un saglabāt atjauninātu klastera stāvokļa skatījumu.

drošības apsvērumi

Droši klastera mezgli, iespējojot paroles autentifikāciju (`prasību" direktīva), ierobežojot piekļuvi tīklam, izmantojot ugunsmūra noteikumus un ierobežojot atklātās saskarnes, izmantojot "Bind" konfigurāciju. Ja iespējams, izmantojiet TLS šifrēšanu, lai aizsargātu datus tranzītā.

Atspējojiet aizsargātu režīmu, darbojoties Redis klastera režīmā, bet pārliecinieties, ka tīkla konfigurācijas izolē klasteru no neuzticamiem klientiem.

uzraudzība un apkope

Ieviesiet visaptverošu klasteru veselības uzraudzību, ieskaitot mezglu pieejamību, latentumu, atmiņas izmantošanu, replikācijas kavēšanos un klastera stāvokļa izmaiņas. Tādiem rīkiem kā Redis Sentinel, trešo personu uzraudzības platformas vai mākoņa pakalpojumu sniedzēju risinājumi vajadzētu būt operatīvās stratēģijas sastāvdaļai.

Regulāri pārbaudiet kļūmjpārlēces mehānismus un veic kontrolētu mezglu restartēšanu vai mērogošanas vingrinājumus, lai pārbaudītu klasteru noturību.

Veiktspējas skaņošana

Tune Redis un klastera konfigurācija, pamatojoties uz darba slodzes specifiku:

- Samaziniet komandu bloķēšanu un izmantojiet cauruļvadu vai LUA skriptus, lai optimizētu caurlaidspēju.
-Pielāgojiet `kopas mezglu-timeout" atbilstoši tīkla latentuma raksturlielumiem, lai izvairītos no kļūdainiem kļūmjiem.
- Lai optimizētu spēļu automātu sadalījumu, izmantojiet konsekventu sajaukšanu un viedās atslēgas nosaukšanu.
- Izvairieties no lieliem taustiņiem vai vērtībām un apsveriet iespēju sadalīt lielos objektus mazākos gabalos.
- Izmantojiet Redis Cluster vietējos mehānismus horizontāli mērogošanai, pievienojot vai noņemot mezglus un līdzsvarojot laika nišas.

Dublēšana un atkopšana

Dizaina rezerves stratēģijas, kas saskaņotas ar klasteru iestatīšanu. Izmantojiet periodiskus RDB momentuzņēmumus no galvenajiem mezgliem vai replikām un uzglabājiet dublējumus ārēji. Izvairieties atjaunot rezerves kopijas tieši dzīvā klasterī bez pienācīgas slota un mezgla stāvokļa sinhronizācijas.

Atkopšanai izmantojiet procedūras, kuras REDIS ieteica klasteru rekonstrukcijai no saglabātajām konfigurācijām un dublējumiem.

kopsavilkums

Redis klastera konfigurācijas vāka paraugprakse:

- vismaz trīs galveno mezglu iestatīšana ar kļūmjpārlēces replikām.
-Pareizu ar klasteru saistītu konfigurācijas direktīvu nodrošināšana (`ar klasteru iespējotu`,` klasteru-konfigurēšanas failu ",` kopas mezgla timeout ").
- Mezglu izvietošana piemērotā aparatūrā ar pareiziem tīkla iestatījumiem klienta un kopu kopņu komunikācijai.
- Atmiņas un izlikšanas politikas iespējošana, lai atbilstu darba slodzes prasībām.
- Efektīva hash laika nišu pārvaldīšana un klientu apzināšanās nodrošināšana.
- Klastera nostiprināšana ar autentifikāciju un tīkla vadības ierīcēm.
- Klastera veselības un veiktspējas uzraudzība regulāri.
- Rūpīgi plānot rezerves, atveseļošanās un mērogošanas operācijas.

Šīs labākās prakses piemērošana nodrošina stabilu, mērogojamu un ļoti pieejamu Redis kopu vidi, kas piemērota ražošanas darba slodzēm. Iepriekš minētās tēmas ietver būtiskus operatīvos, arhitektūras un drošības apsvērumus Redis klasteru izvietošanai.