Dieser Artikel führt Sie durch den Sentinel-Modus in Redis. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Die Methode der Master-Slave-Umschalttechnologie ist:
- Wenn der Master-Server ausfällt, müssen Sie manuell vom Slave-Server zum Master-Slave-Server wechseln (
slaveof no one
), was einen manuellen Eingriff erfordert .
- Dies ist zeitaufwändig und mühsam, führt aber auch dazu, dass der Dienst für einen bestimmten Zeitraum nicht verfügbar ist. Dies ist kein empfohlener Ansatz.
- Mehr Zeit, wir priorisieren den Sentinel-Modus, den aktuellen Mainstream-Modus für Unternehmensanwendungen. Redis Sentinel ist eine „hochverfügbare Implementierung“ von Redis. Sentinel ist ein Tool zur Verwaltung mehrerer Redis-Instanzen. Es kann
überwachen- , Redis benachrichtigen und Failover automatisieren. Zu den Grundkonzepten der Redis Sentinel-Funktionen Zu den Hauptfunktionen von Sentinel gehören:
Überlebenserkennung des Masterknotens, Erkennung des Master-Slave-Betriebs, automatisches Failover und Master-Slave-Umschaltung.
Die minimale Tag-Konfiguration von Redis ist ein Master und ein Slave.
Das Sentinel-System von Redis kann zur Verwaltung mehrerer Redis-Server verwendet werden.
Das System kann die folgenden vier Aufgaben ausführen:
1. Überwachung: Sentinel prüft ständig, ob der Master-Server und die Slave-Server normal funktionieren Automatischer Failover: Wenn der Masterknoten nicht ordnungsgemäß funktioniert, leitet Sentinel einen automatischen Failover-Vorgang ein. Es aktualisiert einen der Slave-Knoten in einer Master-Slave-Beziehung mit dem ausgefallenen Master-Knoten auf den neuen Master-Knoten und verweist die anderen Slave-Knoten auf den neuen Master-Knoten
4, Konfigurationsanbieter: Im Redis Sentinel-Modus, Wann Beim Initialisieren der Clientanwendung wird eine Verbindung zur Sammlung von Sentinel-Knoten hergestellt, um die Informationen des Masterknotens abzurufen.
Funktionsweise von Redis Sentinel
Wenn der Sentinel-Knoten eine Verbindung zur Redis-Instanz herstellt, werden zwei erstellt Verbindungen: cmd und pub/sub. Sentinel sendet Befehle über cmd-Verbindungen an Redis und über Pub/Sub-Verbindungen an andere Sentinel-Instanzen auf der Redis-Instanz.
- Befehle für Sentinel zur Interaktion mit Redis-Master- und -Slave-Knoten
- Jeder Sentinel sendet jede Sekunde einen PING-Befehl an seine bekannten Master-Instanzen, Slave-Instanzen und andere Sentinel-Instanzen.
Wenn eine Instanz seit der letzten gültigen Antwort (in Millisekunden) auf den PING-Befehl länger als die von down angegebene Zeit benötigt, markiert Sentinel die Instanz als Subjektiv offline.
Wenn der Master-Server als subjektive Abmeldung markiert ist, werden alle Sentinel-Knoten des Master-Servers einmal pro Sekunde überwacht, um zu bestätigen, dass der Master-Server tatsächlich in den subjektiven Abmeldestatus eingetreten ist.
Wenn der Master-Server als subjektiv abgemeldet markiert ist und innerhalb des angegebenen Zeitraums genügend Sentinels (mindestens die in der Konfigurationsdatei angegebene Anzahl) vorhanden sind, die dieser Beurteilung entsprechen, wird der Master-Server als markiert objektiv offline.
-
- Normalerweise sendet jeder Sentinel alle 10 Sekunden einen INFO-Befehl an alle ihm bekannten Master und Slaves. Wenn Sentinel einen Master-Server als offline markiert, ändert sich die Häufigkeit, mit der Sentinel INFO-Befehle an alle Slave-Server des Offline-Master-Servers sendet, von einmal alle 10 Sekunden auf einmal jede Sekunde.
-
Sentinel verhandelt den Status des Masterknotens mit anderen Sentinels. Befindet sich der Masterknoten im SDOWN-Zustand, wird bei der Abstimmung automatisch ein neuer Masterknoten ausgewählt. Richten Sie die verbleibenden Slave-Knoten zur Datenreplikation - auf den neuen Master-Knoten .
-
Wenn nicht genügend Wachposten vorhanden sind, um dem Meister das Abmelden zu ermöglichen, wird der objektive Abmeldestatus des Meisters entfernt. Wenn der Master eine gültige Antwort auf den PING-Befehl von Sentinel zurückgibt, wird der subjektive Offline-Status des Masters entfernt.
Ein robuster Redis Sentinel-Cluster sollte mindestens drei Sentinel-Instanzen verwenden und sicherstellen, dass diese Instanzen auf verschiedenen Maschinen oder sogar in verschiedenen physischen Bereichen platziert werden.
Sentinel kann keine starke Konsistenz garantieren . Sentinel wird in gängigen Client-Anwendungsbibliotheken unterstützt.
Sentinel muss ständig getestet und beobachtet werden, um eine hohe Verfügbarkeit sicherzustellen.
Testen. Konfigurationsdatei erstellen. Der Inhalt wird einfach wie folgt konfiguriert: port 16379 # 哨兵端口号
daemonize yes
sentinel monitor master 127.0.0.1 6379 1 # 监视master
protected-mode no
logfile "/usr/local/bin/sentinel-1/sentinel-1.log" # 日志文件
. Erster Start Redis-Setup-Cluster und starten Sie Redis-Cli, legen Sie 6379 als Master fest
und starten Sie dann Sentinel
sudo redis-sentinel sentinel-1/sentinel.conf
Schließen Sie 6379
Rollen anzeigen der anderen beiden Redis-Cli
Starten Sie 6379 neu.
Sehen Sie sich das Sentinel-Protokoll an Besuchen Sie:
Programmierunterricht! !
Das obige ist der detaillierte Inhalt vonLassen Sie uns über den Sentry-Modus in Redis sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!