GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit Redis Cluster v CentOS 8 – část 3

Redis Cluster je vestavěný Redis funkce, která podporuje automatické sdílení, replikaci a vysokou dostupnost, která byla dříve implementována pomocí Sentinels . Je navržen pro dva hlavní účely:jedním je automaticky rozdělit vaši datovou sadu mezi více instancí a zadruhé poskytnout určitý stupeň dostupnosti během dělení, pokračovat v operacích, když některé instance (zejména master) selžou nebo nejsou schopny komunikovat s většinou uzly v clusteru.

Cluster však přestane fungovat v případě větších poruch (např. když je většina hlavních instancí nedostupná). Pokud zároveň selžou hlavní i podřízený klastr, nemůže klastr pokračovat v normálních operacích (ačkoli řešením je přidat další uzly nebo vytvořit v klastru asymetrii, aby se automaticky změnilo rozložení klastru).

Podle Redis dokumentace klastru, „minimální klastr “, který funguje podle očekávání, vyžaduje, aby obsahoval alespoň 3 hlavní uzly. Ale nejvhodnější nastavení pro vysokou dostupnost by mělo mít alespoň 6 uzlů se třemi mastery a třemi slave, přičemž každý master má slave.

Důležité :Redis Cluster má také určitá omezení, kterými jsou nedostatek podpory pro NATted prostředí i ta, kde jsou IP adresy nebo TCP porty přemapovány, například pod Docker . Navíc to ne každá klientská knihovna podporuje.

Tento článek ukazuje, jak nastavit Redis Cluster (s Režim clusteru deaktivován ) v CentOS 8 . Zahrnuje, jak nainstalovat Redis, nakonfigurovat uzly clusteru, vytvořit cluster a otestovat převzetí služeb při selhání clusteru.

Poznámka :V této příručce použijeme ke spuštění režimu clusteru čerstvé/prázdné instance Redis. Režim clusteru nebude fungovat s některými konfiguracemi provedenými v prvních dvou příručkách naší řady Redis, zejména nefunguje, když se používá replika parametru.

Předpoklady:

  1. Servery s instalací CentOS 8

Nastavení testovacího prostředí

Redis Master1 :10.42.0.247Redis Master2 :10.42.0.197Redis Master3 :10.42.0.132Redis Slave1 :10.42.0.200Redis Slave2 :10.42.0.21Redis Slave3 :10.42.0.34

Logický diagram clusteru Redis

Naše nastavení má 3 hlavní uzly pro čtení/zápis a 3 replikované uzly pouze pro čtení, přičemž každý hlavní má jednu repliku, takže tři fragmenty obsahují všechna data clusteru v každém uzlu. API aplikace nebo CLI klient může zapisovat pouze do hlavních uzlů, ale číst z libovolného uzlu v clusteru.

Krok 1:Instalace Redis na všechny uzly

1. Přihlaste se do všech instancí pomocí SSH a poté spusťte následující příkaz k instalaci Redis pomocí správce balíčků DNF, jak je znázorněno.

# dnf module install redis

2. Dále spusťte Redis službu, povolte její automatické spouštění při spouštění systému a zkontrolujte její stav, abyste ověřili, že je spuštěna (ověřte službu na všech 6 instancích):

# systemctl start redis# systemctl povolit redis# systemctl status redis

Krok 2:Konfigurace instancí Redis na všech uzlech

3. Tato část popisuje, jak nakonfigurovat uzly clusteru Redis. Nezapomeňte zde provést konfiguraci na všech uzlech.

Použijte /etc/redis.conf konfigurační soubor pro konfiguraci Redis server. Doporučuje se vytvořit zálohu původního souboru před jeho úpravou pomocí textového editoru příkazového řádku dle vašeho výběru.

# cp /etc/redis.conf /etc/redis.conf.orig# vi /etc/redis.conf

4. Dále vyhledejte následující konfigurační parametry a upravte jejich hodnoty podle obrázku. Vazba parametr nastavuje rozhraní, na kterém bude server Redis naslouchat, nastavte jeho hodnotu na IP IP instance LAN. Odeberte 127.0.0.1 protože jsme si uvědomili, že jeho ponechání tam zpomaluje proces vytváření klastru, zejména fázi připojování ke klastru.

vázat 10.42.0.247

Poté nastavte chráněný režim na no povolit připojení z ostatních instancí v clusteru.

chráněný režim ne

Parametr port definuje port, na kterém bude server Redis naslouchat připojení, výchozí hodnota je 6379 . Toto je datový port pro komunikaci s klienty.

port 6379

Nastavte rozhraní a port Redis Listen Interface

5. Další sada parametrů povolí režim clusteru a nastaví některé z jeho užitečných funkcí. Povolit cluster parametr, když je nastaven na yes , aktivuje režim clusteru.

ano s povoleným clusterem

Dále soubor cluster-config-file parametr nastavuje název souboru konfigurace clusteru uzlu clusteru (např. nodes-6379.conf ). Soubor je vytvořen v pracovním adresáři (výchozí je /var/lib/redis definované pomocí dir parametr) a není uživatelsky upravitelný.

cluster-config-file nodes-6379.conf

Další užitečnou možností clusteru je cluster-node-timeout , používá se k nastavení maximální doby v milisekundách, po kterou může být instance nedostupná, aby byla považována za poruchový. Hodnota 15 000 je ekvivalentní 15 sekund.

cluster-node-timeout 15000

Nastavte časový limit uzlu clusteru

6. Musíme také povolit Redis persistenci na disku. Můžeme použít jeden z režimů persistence, to je Přidat pouze soubor (AOF ):přihlásí se (v souboru appendonly.aof vytvořený v pracovním adresáři) každá operace zápisu úspěšně přijatá serverem. Data se přehrají během spouštění serveru za účelem rekonstrukce původní datové sady.

Chcete-li jej povolit, nastavte pouze přílohu parametr na yes .

appendonly yes

Nastavte možnosti perzistence

7. Po provedení všech změn restartujte Redis služby na všech uzlech, aby byly použity poslední změny.

# systemctl restart redis

8. V tomto okamžiku by nyní měl mít každý uzel clusteru ID . Můžete to zkontrolovat v souboru protokolu na adrese /var/log/redis/redis.log .

# cat /var/log/redis/redis.log

Zkontrolujte soubor protokolu uzlu clusteru

9. Dále otevřete port 6397 a 16379 ve všech případech. Pozdější port se používá pro klastrovou sběrnici (node-to-node komunikační kanál využívající binární protokol). Toto je základní požadavek pro připojení TCP clusteru Redis.

# firewall-cmd --zone=public --permanent --add-port=6379/tcp # firewall-cmd --zone=public --permanent --add-port=16379/tcp # firewall-cmd - -znovu načíst

Krok 3:Vytvoření clusteru Redis

10. Chcete-li vytvořit cluster, použijte příkazový řádek redis-cli klienta následovně. --cluster create umožňuje vytvoření clusteru a --cluster-replicas 1 znamená vytvořit jednu repliku na předlohu.

Pro naše nastavení, které má 6 uzlů, budeme mít 3 hlavní a 3 podřízené.

Upozorňujeme, že prvních 6 uzlů bude považováno za hlavní (M) a další tři budou považováni za otroky (S) . První otrok, tj. 10.42.0.200:6379 replikuje první předlohu, tj. 10.42.0.247:6379 , druhý slave replikuje druhého mastera v tomto pořadí.

Následující příkaz je naformátován tak, aby výsledek představoval naše výše uvedené logické nastavení.

# redis-cli --vytvoření clusteru 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6420:6379 10.42.0.21:6420.6.>

Vytvořit Redis Cluster

11. Jakmile je vytvoření clusteru úspěšné, spusťte následující příkaz na libovolném hostiteli (uveďte jeho IP adresu pomocí -h flag) zobrazí všechny uzly clusteru.

# redis-cli -h 10.42.0.247 -p 6379 uzlů clusteru

Měli byste být schopni vidět všechny uzly clusteru, přičemž podřízené jednotky označují své mastery, jak je znázorněno na následujícím snímku obrazovky.

Zkontrolujte všechny uzly clusteru na libovolném uzlu

Různá pole jsou v tomto pořadí:ID uzlu, IP adresa:port, příznaky, poslední odeslaný ping, poslední přijatý pong, konfigurační epocha, stav spojení, sloty (pro mastery).

Krok 4:Testování Redis Cluster Failover

12. V této části si ukážeme, jak testovat převzetí služeb při selhání clusteru. Nejprve si povšimněme mistrů.

# redis-cli -h 10.42.0.247 -p 6379 uzly clusteru | grep master

Uveďte seznam Redis Cluster Masters

Všimněte si také otroků Redis.

# redis-cli -h 10.42.0.247 -p 6379 uzly clusteru | grep slave

Vypsat všechny Redis Cluster Slave

13. Dále zastavme službu Redis na jednom z hlavních uzlů, např. 10.42.0.197 a zkontrolujte všechny hlavní uzly v clusteru.

# systemctl stop redis# redis-cli -h 10.42.0.247 -p 6379 uzly clusteru | grep master

Na následujícím snímku obrazovky můžete vidět, že uzel 10.42.0.197:6367 je ve stavu selhání a jeho podřízený 10.42.0.21:6379 byl povýšen do hlavního stavu.

Zkontrolujte stav převzetí služeb při selhání klastru

14. Nyní začněme Redis znovu službu na neúspěšném uzlu a zkontrolujte všechny hlavní servery v clusteru.

# systemctl start redis# redis-cli -h 10.42.0.247 -p 6379 uzly clusteru | grep master

Zkontrolujte stav hlavního serveru všech Redis Cluster

Zkontrolujte také podřízené jednotky clusteru, abyste se ujistili, že neúspěšný hlavní server je nyní podřízeným zařízením.

# redis-cli -h 10.42.0.247 -p 6379 uzly clusteru | grep slave

Zkontrolujte všechny podřízené jednotky Redis Cluster

Krok 5:Testování replikace dat napříč clusterem Redis

15. Tato poslední část vysvětluje, jak ověřit replikaci dat clusteru. Na jednom z masterů vytvoříme klíč a hodnotu a pokusíme se je přečíst ze všech uzlů clusteru následovně. Použijte -c přepněte, abyste povolili podporu clusteru pomocí nástroje redis-cli a získali přístup k datům v režimu clusteru.

# redis-cli -c -h 10.42.0.247 -p 6379 název sady 'TecMint.com'# redis-cli -c -h 10.42.0.247 -p 6379 získat jméno# redis-cli -c -h 10.42. 0,21 -p 6379 získat jméno# redis-cli -c -h 10.42.0.132 -p 6379 získat jméno# redis-cli -c -h 10.42.0.200 -p 6379 získat jméno# redis-cli -c -h 10.42.0.197 - p 6379 získat jméno# redis-cli -c -h 10.42.0.34 -p 6379 získat jméno

Ověřte Redis Cluster Data Replication

Základem je Redis Cluster je preferovaný způsob, jak získat automatické sdílení, replikaci a vysokou dostupnost. Ve zbytku /etc/redis.conf je mnoho dalších dobře zdokumentovaných konfiguračních parametrů více informací naleznete v oficiální dokumentaci:Redis cluster tutorial a Redis specifikace clusteru.

Tím se dostáváme ke konci třídílné série tutoriálů Redis. Níže uvedený formulář zpětné vazby lze použít k odeslání dotazů nebo komentářů.

Sharing is Caring…
Sdílet na FacebookuSdílet na TwitteruSdílet na LinkedinSdílet na Redditu
Cent OS
  1. Jak nainstalovat a nakonfigurovat Redis na CentOS 7

  2. Jak nastavit klíče SSH na CentOS 8

  3. Jak nainstalovat Redis na CentOS 7

  1. Jak nainstalovat a nakonfigurovat Redis na CentOS 8

  2. Jak nainstalovat Redis Server na CentOS 8 / RHEL 8

  3. Jak nastavit Riak KV NoSQL Database Cluster na CentOS 7

  1. Jak nastavit SVN server na CentOS

  2. Jak nastavit PureFTPd na CentOS 7

  3. Jak nastavit Openshift Origin na CentOS 7