Einführung in Redis Sentinel
Der Sentinel-Prozess wird verwendet, um den Arbeitsstatus des Master-Servers im Redis-Cluster auf dem Master zu überwachen Bei einem Ausfall können die Master- und Slave-Server umgeschaltet werden, um eine hohe Verfügbarkeit des Systems zu gewährleisten. Der Sentinel-Modus von Redis wurde seit Version 2.8 stabilisiert. Im Allgemeinen wird empfohlen, Redis Version 2.8 oder höher in einer Produktionsumgebung zu verwenden. Sentinel ist ein verteiltes System. Sie können mehrere Sentinel-Prozesse in einer Architektur ausführen. Diese Prozesse verwenden Gossip-Protokolle, um Informationen darüber zu erhalten, ob der Master-Server offline ist, und verwenden Abstimmungsprotokolle (Vereinbarungsprotokolle), um zu entscheiden, ob ein automatisches Failover durchgeführt werden soll wähle den neuen Meister. Jeder Sentinel-Prozess sendet regelmäßig Nachrichten an andere Sentinels, Master und Slaves, um zu bestätigen, ob die andere Partei „lebendig“ ist. Wenn festgestellt wird, dass die andere Partei innerhalb der angegebenen Konfigurationszeit (konfigurierbar) keine Antwort erhalten hat, wird dies der Fall sein Vorübergehend zu glauben, dass die andere Partei offline war, ist die sogenannte „subjektive Überzeugung, dass sie ausgefallen ist“. Der englische Name lautet: Subjective Down, kurz SDOWN. Wenn es subjektive Ausfallzeiten gibt, muss es auch objektive Ausfallzeiten geben. Wenn die meisten Sentinel-Prozesse in der „Sentinel-Gruppe“ SDOWN-Beurteilungen auf dem Master-Server vornehmen und über den Befehl SENTINEL is-master-down-by-addr miteinander kommunizieren, wird der Master-Server auf diese Weise offline beurteilt „objective downtime“, die englische Bezeichnung lautet: Objectively Down, kurz ODOWN. Durch einen bestimmten Abstimmungsalgorithmus wird einer der verbleibenden Slave-Serverknoten ausgewählt, um zum Master-Serverknoten befördert zu werden. Anschließend werden die relevanten Konfigurationen automatisch geändert und ein Failover aktiviert.
Obwohl Sentinel über eine separate ausführbare Datei Redis-Sentinel verfügt, handelt es sich tatsächlich nur um einen Redis-Server, der in einem speziellen Modus ausgeführt wird. Sie können einen normalen Redis-Server starten, indem Sie Sentinel mit der Option --sentinel starten von Sentinel sind Zookeeper sehr ähnlich.
Sentinel-Cluster kommunizieren miteinander, kommunizieren den Status von Redis-Knoten, treffen entsprechende Beurteilungen und verarbeiten diese. Der subjektive Offline-Status und der objektive Offline-Status sind hier wichtigere Status, sie bestimmen, ob ein Failover durchgeführt werden kann Dies geschieht durch Abonnieren der angegebenen Kanalinformationen und Benachrichtigen des Administrators, wenn der Server ausfällt. Der Client kann Sentinel als einen Redis-Server betrachten, der nur Abonnementfunktionen bereitstellt. Sie können keine Nachrichten an diesen Server senden Sie können den Befehl SUBSCRIBE oder den Befehl PSUBSCRIBE verwenden, um entsprechende Ereigniserinnerungen zu erhalten, indem Sie einen bestimmten Kanal abonnieren. Ein Kanal kann Ereignisse mit demselben Namen wie der Kanal empfangen. Beispielsweise kann ein Kanal mit dem Namen +sdown Ereignisse empfangen, wenn alle Instanzen in den subjektiven Offline-Zustand (SDOWN) wechseln.
Die Rolle des Sentinel-Prozesses:
1. Überwachung: Sentinel überprüft ständig, ob Ihr Master und Slave normal funktionieren.
2. Benachrichtigung: Wenn in einem überwachten Redis-Knoten ein Problem auftritt, kann der Sentinel über die API Benachrichtigungen an den Administrator oder andere Anwendungen senden.
3. Automatisches Failover: Wenn ein Master nicht ordnungsgemäß funktioniert, startet der Sentinel einen automatischen Failover-Vorgang. Er aktualisiert einen der Slaves des ausgefallenen Masters und lässt andere Slaves davon Der ausgefallene Master ändert sich, um den neuen Master zu kopieren. Wenn der Client versucht, eine Verbindung zum ausgefallenen Master herzustellen, gibt der Cluster auch die Adresse des neuen Masters an den Client zurück, sodass der Cluster den aktuellen Master verwenden kann, um den ausgefallenen Master zu ersetzen . Nachdem der Master- und der Slave-Server gewechselt wurden, ändern sich die Inhalte der Konfigurationsdateien redis.conf, redis.conf und sentinel.conf des Masters entsprechend, d. h., es gibt eine zusätzliche Zeile „slaveof“ in der redis.conf-Konfiguration des Masters Konfiguration wird das Überwachungsziel von sentinel.conf entsprechend geändert
Das obige ist der detaillierte Inhalt vonWarum den Redis-Sentry-Modus hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!