Heim Backend-Entwicklung PHP-Tutorial Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

Feb 26, 2019 am 09:57 AM
php redis

Der Inhalt dieses Artikels besteht darin, den Sentinel-Mechanismus von Redis vorzustellen, damit jeder das Prinzip des Sentinel-Mechanismus und seine Implementierung verstehen kann. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

Übersicht

Die Redis-Replikation hat einen Nachteil, wenn der Host-Master ausfällt, müssen wir manuell arbeiten Lösen Sie den Schalter, indem Sie beispielsweise den Slave von niemandem verwenden. Tatsächlich wurde die Master-Slave-Replikation nicht auf Backup-Maschinen implementiert und nutzt die Redundanz des Systems im Cluster. Wenn eine Maschine im System beschädigt ist, kann sie schnell von anderen Backup-Maschinen übernommen werden .

Probleme mit der Master-Slave-Replikation

Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

Sobald der Masterknoten ausfällt und der Schreibdienst nicht mehr funktioniert Um verwendet zu werden, müssen Sie manuell wechseln, den Masterknoten erneut auswählen und die Master-Slave-Beziehung manuell festlegen.

Wie kann man das Problem lösen? Wenn wir über ein Überwachungsprogramm verfügen, das den Status jeder Maschine überwachen und rechtzeitig Anpassungen vornehmen kann, um manuelle Vorgänge in automatische Vorgänge umzuwandeln. Die Entstehung von Sentinel soll dieses Problem lösen.

Prinzip und Implementierung des Sentinel-Mechanismus

Redis Sentinel

Redis Sentinel ist eine verteilte Architektur, die mehrere Sentinel-Knoten und Redis-Datenknoten enthält. Wenn festgestellt wird, dass der Knoten nicht erreichbar ist, wird er als offline markiert. Wenn der identifizierte Master-Knoten der Master-Knoten ist, „verhandelt“ er auch mit anderen Sentinel-Knoten. Wenn die meisten Sentinel-Knoten glauben, dass der Master-Knoten nicht erreichbar ist, wählen sie einen Sentinel-Knoten aus, um das automatische Failover abzuschließen und ihn gleichzeitig zu benachrichtigen Diese Änderung erfolgt auf der Redis-Anwendungsseite in Echtzeit. Der gesamte Prozess läuft vollständig automatisch ab und erfordert keinen manuellen Eingriff, sodass diese Lösung das Hochverfügbarkeitsproblem von Redis effektiv löst.

Wie in der Abbildung gezeigt:


Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

Grundlegender Failover-Prozess

1) Der Master-Knoten fällt aus. Zu diesem Zeitpunkt verlieren die beiden Slave-Knoten die Verbindung zum Master-Knoten und die Master-Slave-Replikation schlägt fehl.

Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

2) Jeder Sentinel-Knoten stellt durch regelmäßige Überwachung fest, dass der Masterknoten ausgefallen ist

Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

3) Mehrere Sentinel Knoten einigen sich auf den Ausfall des Primärknotens und wählen einen der Knoten als Leiter, der für das Failover verantwortlich ist.

Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

4) Der Sentinel-Leader-Knoten hat ein Failover durchgeführt. Der gesamte Prozess ist im Grunde derselbe wie unsere manuelle Anpassung, wird jedoch automatisch abgeschlossen.


Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

5) Nach dem Failover wählte die gesamte Redis Sentinel-Struktur erneut einen neuen Masterknoten.

Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

Instanz

Verwenden Sie Docker, um den folgenden Redis-Container zu erstellen
redis-sentinel1    172.10.0.9    22530 -> 22530    sentinel
redis-sentinel2    172.10.0.10    22531 -> 6379    sentinel
redis-sentinel3    172.10.0.11    22532 -> 6379    sentinel
redis-master2    172.10.0.5    6383  -> 6379    Master
redis-slave2    172.10.0.6    6384  -> 6379    Slave
redis-slave3    172.10.0.7    6385  -> 6379    Slave
Nach dem Login kopieren

Konfiguration

Sentinels Kernkonfiguration

sentinel monitor mymaster 127.0.0.1 7000 2
Nach dem Login kopieren

Der Name, die IP und der Port des überwachten Masterknotens. Die letzten 2 geben an, wie viele Sentinels gefunden werden. Wenn die Konfiguration beispielsweise 2 ist, bedeutet dies, dass mindestens zwei Sentinel-Knoten davon ausgehen, dass der Masterknoten nicht erreichbar ist, sodass die Feststellung der Nichterreichbarkeit objektiv ist. Je kleiner die Einstellung, desto lockerer sind die Voraussetzungen für das Erreichen des Offline-Levels und umgekehrt. Im Allgemeinen wird empfohlen, den Wert auf die Hälfte des Sentinel-Knotens plus 1 festzulegen.

sentinel down-after-millseconds mymaster 30000
Nach dem Login kopieren

Dies ist das Timeout (Einheit: Millisekunden). Wenn Sie beispielsweise eine Maschine anpingen und diese nach langer Zeit immer noch nicht anpingen können, wird dies als Problem angesehen.

sentinel parallel-syncs mymaster 1
Nach dem Login kopieren

当 Sentinel 节点集合对主节点故障判定达成一致时,Sentinel 领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,parallel-syncs 就是用来限制在一次故障转移之后,每次向新的主节点发起复制操作的从节点个数,指出 Sentinel 属于并发还是串行。1代表每次只能复制一个,可以减轻 Master 的压力。

Einführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text)

sentinel auth-pass <master-name> <password></password></master-name>
Nach dem Login kopieren

如果 Sentinel 监控的主节点配置了密码,sentinel auth-pass 配置通过添加主节点的密码,防止 Sentinel 节点对主节点无法监控。

sentinel failover-timeout mymaster 180000
Nach dem Login kopieren

表示故障转移的时间。

技巧

1)Sentinel 节点不应该部署在一台物理“机器”上。

这里特意强调物理机是因为一台物理机做成了若干虚拟机或者现今比较流行的容器,它们虽然有不同的 IP 地址,但实际上它们都是同一台物理机,同一台物理机意味着如果这台机器有什么硬件故障,所有的虚拟机都会受到影响,为了实现 Sentinel 节点集合真正的高可用,请勿将 Sentinel 节点部署在同一台物理机器上。

2)部署至少三个且奇数个的 Sentinel 节点。

3个以上是通过增加 Sentinel 节点的个数提高对于故障判定的准确性,因为领导者选举需要至少一半加1个节点,奇数个节点可以在满足该条件的基础上节省一个节点。

【相关文章】

Redis主从复制的原理介绍(图文)

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

Das obige ist der detaillierte Inhalt vonEinführung in die Prinzipien des Redis-Sentinel-Mechanismus (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Zukunft von PHP: Anpassungen und Innovationen Die Zukunft von PHP: Anpassungen und Innovationen Apr 11, 2025 am 12:01 AM

Die Zukunft von PHP wird erreicht, indem sich an neue Technologietrends angepasst und innovative Funktionen eingeführt werden: 1) Anpassung an Cloud Computing, Containerisierung und Microservice -Architekturen, Unterstützung von Docker und Kubernetes; 2) Einführung von JIT -Compilern und Aufzählungsarten zur Verbesserung der Leistung und der Datenverarbeitungseffizienz; 3) die Leistung kontinuierlich optimieren und Best Practices fördern.

PHP vs. Python: Verständnis der Unterschiede PHP vs. Python: Verständnis der Unterschiede Apr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

So erstellen Sie den Redis -Clustermodus So erstellen Sie den Redis -Clustermodus Apr 10, 2025 pm 10:15 PM

Der Redis -Cluster -Modus bietet Redis -Instanzen durch Sharding, die Skalierbarkeit und Verfügbarkeit verbessert. Die Bauschritte sind wie folgt: Erstellen Sie ungerade Redis -Instanzen mit verschiedenen Ports; Erstellen Sie 3 Sentinel -Instanzen, Monitor -Redis -Instanzen und Failover; Konfigurieren von Sentinel -Konfigurationsdateien, Informationen zur Überwachung von Redis -Instanzinformationen und Failover -Einstellungen hinzufügen. Konfigurieren von Redis -Instanzkonfigurationsdateien, aktivieren Sie den Cluster -Modus und geben Sie den Cluster -Informationsdateipfad an. Erstellen Sie die Datei nodes.conf, die Informationen zu jeder Redis -Instanz enthält. Starten Sie den Cluster, führen Sie den Befehl erstellen aus, um einen Cluster zu erstellen und die Anzahl der Replikate anzugeben. Melden Sie sich im Cluster an, um den Befehl cluster info auszuführen, um den Clusterstatus zu überprüfen. machen

PHP: Stirbt es oder passt es sich einfach an? PHP: Stirbt es oder passt es sich einfach an? Apr 11, 2025 am 12:13 AM

PHP stirbt nicht, sondern sich ständig anpasst und weiterentwickelt. 1) PHP hat seit 1994 mehreren Versionen für die Version unterzogen, um sich an neue Technologietrends anzupassen. 2) Es wird derzeit in E-Commerce, Content-Management-Systemen und anderen Bereichen häufig verwendet. 3) PHP8 führt den JIT -Compiler und andere Funktionen ein, um die Leistung und Modernisierung zu verbessern. 4) Verwenden Sie Opcache und befolgen Sie die PSR-12-Standards, um die Leistung und die Codequalität zu optimieren.

So verwenden Sie den Befehl Redis So verwenden Sie den Befehl Redis Apr 10, 2025 pm 08:45 PM

Die Verwendung der REDIS -Anweisung erfordert die folgenden Schritte: Öffnen Sie den Redis -Client. Geben Sie den Befehl ein (Verbschlüsselwert). Bietet die erforderlichen Parameter (variiert von der Anweisung bis zur Anweisung). Drücken Sie die Eingabetaste, um den Befehl auszuführen. Redis gibt eine Antwort zurück, die das Ergebnis der Operation anzeigt (normalerweise in Ordnung oder -err).

So starten Sie den Server mit Redis So starten Sie den Server mit Redis Apr 10, 2025 pm 08:12 PM

Zu den Schritten zum Starten eines Redis -Servers gehören: Installieren von Redis gemäß dem Betriebssystem. Starten Sie den Redis-Dienst über Redis-Server (Linux/macOS) oder redis-server.exe (Windows). Verwenden Sie den Befehl redis-cli ping (linux/macOS) oder redis-cli.exe ping (Windows), um den Dienststatus zu überprüfen. Verwenden Sie einen Redis-Client wie Redis-Cli, Python oder Node.js, um auf den Server zuzugreifen.

So verwenden Sie Redis Lock So verwenden Sie Redis Lock Apr 10, 2025 pm 08:39 PM

Um die Operationen zu sperren, muss die Sperre durch den Befehl setNX erfasst werden und dann den Befehl Ablauf verwenden, um die Ablaufzeit festzulegen. Die spezifischen Schritte sind: (1) Verwenden Sie den Befehl setNX, um zu versuchen, ein Schlüsselwertpaar festzulegen; (2) Verwenden Sie den Befehl Ablauf, um die Ablaufzeit für die Sperre festzulegen. (3) Verwenden Sie den Befehl Del, um die Sperre zu löschen, wenn die Sperre nicht mehr benötigt wird.

So löschen Sie Redis -Daten So löschen Sie Redis -Daten Apr 10, 2025 pm 10:06 PM

So löschen Sie Redis -Daten: Verwenden Sie den Befehl Flushall, um alle Schlüsselwerte zu löschen. Verwenden Sie den Befehl flushdb, um den Schlüsselwert der aktuell ausgewählten Datenbank zu löschen. Verwenden Sie SELECT, um Datenbanken zu wechseln, und löschen Sie dann FlushDB, um mehrere Datenbanken zu löschen. Verwenden Sie den Befehl del, um einen bestimmten Schlüssel zu löschen. Verwenden Sie das Redis-Cli-Tool, um die Daten zu löschen.

See all articles