So richten Sie einen Redis -Cluster in CentOS 8 - Teil 3 ein
- 4811
- 457
- Levke Harnapp
Redis -Cluster ist ein gebautes Redis Feature, die automatische Sharding, Replikation und hohe Verfügbarkeit unterstützt, die zuvor mithilfe der Verwendung implementiert wurde Wächter. Es ist für zwei Hauptzwecke ausgelegt: Eine besteht darin, Ihren Datensatz automatisch in mehreren Instanzen aufzuteilen und zweitens ein gewisses Maß an Verfügbarkeit während der Partitionen, um den Betrieb fortzusetzen, wenn einige Fälle (insbesondere Masters) ausfallen oder nicht mit der Mehrheit von der Mehrheit von kommunizieren können Knoten im Cluster.
Der Cluster stoppt jedoch, dass im Falle größerer Fehler (e) betrieben wird (e).g Wenn die Mehrheit der Master -Instanzen nicht verfügbar sind). Wenn ein Master und ein Slave gleichzeitig ausfallen, kann der Cluster den normalen Vorgängen nicht fortsetzen (obwohl die Problemumgehung mehr Knoten hinzufügen oder eine Asymmetrie im Cluster erstellen kann, um das Cluster-Layout automatisch zu ändern).
Entsprechend der Redis Cluster -Dokumentation, die “Minimaler ClusterDas erwartungsgemäß erfordert, dass mindestens 3 Masterknoten enthalten sind. Aber das am besten geeignete Setup für hohe Verfügbarkeit sollte mindestens 6 Knoten mit drei Meistern und drei Sklaven haben, wobei jeder Meister einen Sklaven hat.
Wichtig: Redis -Cluster hat auch einige Einschränkungen, die mangelnde Unterstützung für die Unterstützung sind Natted Umgebungen auch solche, in denen IP -Adressen oder TCP -Ports beispielsweise untergebracht sind Docker. Darüber hinaus unterstützt nicht jede Kundenbibliothek es.
Dieser Artikel zeigt, wie man a einrichtet Redis -Cluster (mit Cluster-Mode deaktiviert) In Centos 8. Es enthält die Installation von Redis, die Konfiguration der Clusterknoten, erstellt einen Cluster und testet das Cluster -Failover.
Notiz: Für diesen Leitfaden verwenden wir frische/leere Redis -Instanzen, um den Clustermodus auszuführen. Der Clustermodus funktioniert nicht mit einigen Konfigurationen, die in den ersten beiden Leitfäden unserer Redis -Serie durchgeführt wurden, insbesondere nicht, wenn die Replik des Parameters verwendet wird.
Voraussetzungen:
- Server mit CentOS 8 Installation
Testumgebung einrichten
Redis Master1: 10.42.0.247 Redis Master2: 10.42.0.197 Redis Master3: 10.42.0.132 Redis Slave1: 10.42.0.200 Redis Slave2: 10.42.0.21 Redis Slave3: 10.42.0.34Redis -Cluster -logisches Diagramm
Unser Setup verfügt über 3 Lese-/Schreibmeisterknoten und 3 schreibgeschützte Replikatknoten, wobei jeder Master eine Replikatin mit einer Replikat. Eine Bewerbung API oder Cli Der Client kann nur an die Masterknoten schreiben, aber von jedem Knoten im Cluster lesen.
Schritt 1: Installieren von Redis auf allen Knoten
1. Melden Sie sich über alle Instanzen an Ssh, Führen Sie dann den folgenden Befehl aus, um die zu installieren Redis Modul mit dem DNF -Paket -Manager wie gezeigt.
# DNF -Modul Installieren Sie Redis
2. Als nächstes starten Sie die Redis Ermöglichen Sie den Dienst, den System automatisch mit dem System zu starten und seinen Status zu überprüfen, um zu überprüfen, ob er ausgeführt wird (überprüfen Sie den Dienst in allen 6 Instanzen):
# Systemctl start redis # systemctl aktivieren redis # systemctl status redis
Schritt 2: Konfigurieren von Redis -Instanzen auf allen Knoten
3. In diesem Abschnitt wird beschrieben, wie Sie die Redis -Clusterknoten konfigurieren. Denken Sie daran, die Konfigurationen hier auf allen Knoten durchzuführen.
Benutze die /etc/Redis.Conf Konfigurationsdatei, um die zu konfigurieren Redis Server. Erstellen Sie als empfohlene Praxis eine Sicherung der Originaldatei, bevor Sie sie mit einem Befehlszeilen-Texteditor Ihrer Wahl bearbeiten.
# CP /etc /Redis.Conf /etc /Redis.Conf.Orig # vi /etc /Redis.Conf
4. Suchen Sie als Nächstes die folgenden Konfigurationsparameter und bearbeiten Sie deren Werte wie gezeigt. Der binden Der Parameter setzt die Schnittstelle des Redis -Server. Entferne das 127.0.0.1 Weil wir festgestellt haben, dass es dort den Prozess der Clustererstellung verlang.
binden 10.42.0.247
Dann setze die Sicherheitsmodus Zu NEIN
Verbindungen aus den anderen Fällen auf dem Cluster zu ermöglichen.
geschützter Modus Nr
Der Portparameter definiert den Port, den der Redis -Server auf Verbindungen anhört. Die Standardeinstellung ist 6379. Dies ist der Datenport für die Kommunikation mit Kunden.
Port 6379Stellen Sie Redis -Hörschnittstelle und Port ein
5. Der nächste Satz von Parametern ermöglicht den Clustermodus und setzen einige seiner nützlichen Funktionen ein. Der Cluster-fähig Parameter, wenn auf eingestellt ist Ja
, aktiviert den Clustermodus.
Cluster-fähig Ja
Als nächstes die Cluster-Config-Datei Der Parameter legt den Namen der Cluster -Konfigurationsdatei eines Clusterknotens fest (e.G Knoten-6379.Conf). Die Datei wird im Arbeitsverzeichnis erstellt (Standard ist der Standard /var/lib/Redis definiert mit dem Dir Parameter) und nicht benutzerbearbeitbar ist.
Cluster-Config-Datei-Knoten-6379.Conf
Die nächste nützliche Cluster -Option ist Cluster-Knoten-Timeout, Es wird verwendet, um die maximale Zeit in Millisekunden festzulegen. Eine Instanz kann nicht verfügbar sein, damit es in einem Fehlerzustand berücksichtigt werden kann. Ein Wert von 15000 ist äquivalent zu 15 Sekunden.
Cluster-Knoten-Timeout 15000Stellen Sie die Clusterknoten -Zeitüberschreitung ein
6. Wir müssen auch die Wiederherstellung der Beharrlichkeit auf der Festplatte ermöglichen. Wir können einen der Persistenzmodi verwenden, das ist die Nur Datei anhängen (Aof): Es protokolliert (in der Datei angehängt.Aof Erstellt unter dem Arbeitsverzeichnis) Jeder von dem Server erfolgreich empfangene Schreibvorgang. Die Daten werden während des Server -Startups gespielt, um den ursprünglichen Datensatz zu rekonstruieren.
Um es zu aktivieren, stellen Sie die fest angehängt Parameter zu Ja
.
Appendonly jaLegen Sie die Beharrlichkeitsoptionen fest
7. Nachdem Sie alle Änderungen vorgenommen haben, starten Sie die neu neu Redis Service auf allen Knoten, um die jüngsten Änderungen anzuwenden.
# Systemctl Neustart Redis
8. Zu diesem Zeitpunkt sollte jeder Clusterknoten jetzt eine haben AUSWEIS. Sie können dies in der Protokolldatei unter überprüfen /var/log/redis/redis.Protokoll.
# cat/var/log/redis/redis.ProtokollÜberprüfen Sie die Clusterknotenprotokolldatei
9. Als nächstes öffnen Sie Port 6397 Und 16379 in allen Fällen. Am später Hafen wird für den Clusterbus (a Knoten-zu-Knoten Kommunikationskanal mit einem binären Protokoll). Dies ist eine grundlegende Anforderung für die Redis -Cluster -TCP -Verbindungen.
# Firewall-cmd --zone = public --permanent --add-port = 6379/tcp # Firewall-cmd --zone = public --permanent --add-port = 16379/TCP # Firewall-CMD--Reload
Schritt 3: Erstellen des Redis -Clusters
10. Verwenden Sie den Cluster, um den Cluster zu erstellen redis-cli-Befehlszeile Kunde wie folgt. Der --Cluster erstellen
ermöglicht die Erstellung von Cluster und --Cluster-Replicas 1
bedeutet, eine Replik pro Master zu erstellen.
Für unser Setup mit 6 Knoten werden wir 3 Meister und 3 Sklaven haben.
Beachten Sie, dass die ersten 6 Knoten berücksichtigt werden Meister (M)
und die nächsten drei werden berücksichtigt Sklaven (S)
. Der erste Sklave I.e 10.42.0.200: 6379 repliziert den ersten Meister i.e 10.42.0.247: 6379, Der zweite Sklave repliziert den zweiten Meister in dieser Reihenfolge.
Der folgende Befehl wird so formatiert, dass das Ergebnis unser logisches Setup oben darstellt.
# Redis-Cli-Cluster erstellen 10.42.0.247: 6379 10.42.0.197: 6379 10.42.0.132: 6379 10.42.0.200: 6379 10.42.0.21: 6379 10.42.0.34: 6379-Cluster-Replicas 1Redis -Cluster erstellen
11. Wenn die Clustererstellung erfolgreich ist, führen Sie den folgenden Befehl auf einem beliebigen Host aus (geben Sie die IP -Adresse mit der IP -Adresse an -H
Flag), um alle Clusterknoten aufzulisten.
# Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten
Sie sollten in der Lage sein, alle Clusterknoten anzusehen, wobei die Sklaven ihre Meister angeben, wie im folgenden Screenshot gezeigt.
Überprüfen Sie alle Clusterknoten auf jedem KnotenDie verschiedenen Felder befinden sich in dieser Reihenfolge: Knoten-ID, IP-Adresse: Port, Flags, Last Ping gesendet, letzte Pong empfangen, Konfigurationsepoche, Linkstaat, Slots (für Masters).
Schritt 4: Testen von Redis -Cluster -Failover
12. In diesem Abschnitt werden wir demonstrieren, wie ein Cluster -Failover getestet werden kann. Lassen Sie uns zunächst die Meister zur Kenntnis nehmen.
# Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep MasterListen Sie Redis Cluster Masters auf
Beachten Sie auch die Redis -Sklaven.
# Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep SlaveListen Sie alle Redis -Cluster -Sklaven auf
13. Lassen Sie uns als nächstes den Redis -Dienst auf einem der Masterknoten e stoppen e.G 10.42.0.197 und überprüfen Sie alle Masterknoten im Cluster.
# Systemctl Stop Redis # Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep Master
Aus dem folgenden Screenshot können Sie sehen, dass der Knoten 10.42.0.197: 6367 ist in fehlgeschlagenem Zustand und seinem Sklaven 10.42.0.21: 6379 wurde zum Master -Status befördert.
Überprüfen Sie den Cluster -Failover -Status14. Jetzt beginnen wir die Redis Service erneut auf dem fehlgeschlagenen Knoten und überprüfen Sie alle Meister im Cluster.
# SystemCTL Start Redis # Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep MasterÜberprüfen Sie den gesamten Status des Redis -Cluster -Masters
Überprüfen Sie außerdem die Cluster -Sklaven, um zu bestätigen, dass der fehlgeschlagene Meister jetzt ein Sklave ist.
# Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep SlaveÜberprüfen Sie alle Redis -Cluster -Sklaven
Schritt 5: Testen der Datenreplikation über den Redis -Cluster
15. In diesem letzten Abschnitt wird erläutert, wie die Replikation der Clusterdaten überprüft wird. Wir werden einen Schlüssel und einen Wert auf einem der Meister erstellen und dann versuchen, ihn von allen Clusterknoten wie folgt zu lesen. Benutze die -C
Wechseln Sie, um die Cluster-Unterstützung im REDIS-CLI-Dienstprogramm zu aktivieren und auf Daten im Cluster-Modus zuzugreifen.
# Redis -Cli -c -h 10.42.0.247 -P 6379 Setzen Sie den Namen 'Tecmint.com ' # redis -cli -c -h 10.42.0.247 -P 6379 NAME NAME # REDIS -CLI -C -H 10.42.0.21 -p 6379 NAME NAME # REDIS -CLI -C -H 10.42.0.132 -P 6379 NAME NAME # REDIS -CLI -C -H 10.42.0.200 -p 6379 NAME NAME # REDIS -CLI -C -H 10.42.0.197 -p 6379 Get Name # Redis -Cli -c -h 10.42.0.34 -p 6379 Holen Sie sich den NamenÜberprüfen Sie die Replikation von Redis -Cluster -Daten
Das Fazit ist das Redis -Cluster ist der bevorzugte Weg, um automatische Sharding, Replikation und hohe Verfügbarkeit zu erhalten. Es gibt viele andere gut dokumentierte Konfigurationsparameter im Rest der /etc/Redis.Conf Datei finden Sie weitere Informationen in der offiziellen Dokumentation: Redis -Cluster -Tutorial und Redis -Cluster -Spezifikation.
Dies bringt uns zum Ende der dreiteiligen Redis-Tutorial-Serie. Das folgende Feedback -Formular kann verwendet werden, um Fragen oder Kommentare zu veröffentlichen.
- « Watchman - Eine Datei- und Verzeichnisbeobachtungstools für Änderungen
- So richten Sie einen L2TP/IPSec -VPN -Client unter Linux ein »