Heim  >  Artikel  >  Datenbank  >  Lassen Sie uns über den Sentinel-Mechanismus in Redis sprechen und seine Verwendung vorstellen!

Lassen Sie uns über den Sentinel-Mechanismus in Redis sprechen und seine Verwendung vorstellen!

青灯夜游
青灯夜游nach vorne
2021-12-15 10:14:031924Durchsuche

Dieser Artikel wird Ihnen helfen, den Sentinel-Mechanismus in Redis zu verstehen und zwei Möglichkeiten zum Ausführen von Sentinel vorzustellen. Ich hoffe, er wird Ihnen hilfreich sein!

Lassen Sie uns über den Sentinel-Mechanismus in Redis sprechen und seine Verwendung vorstellen!

1. Übersicht

Redis-Sentinel ist die von Redis offiziell empfohlene Hochverfügbarkeitslösung (HA). Es selbst (einschließlich vieler seiner Clients) implementiert keine automatische Master-Slave-Umschaltung, und Redis-Sentinel selbst ist auch ein unabhängig laufender Prozess. Es kann mehrere Master-Slave-Cluster überwachen und eine selbstverständliche Umschaltung durchführen, nachdem festgestellt wurde, dass der Master vorhanden ist runter. . [Verwandte Empfehlungen: Redis-Video-Tutorial]

Seine Hauptfunktionen sind wie folgt:

  • Überwachen Sie von Zeit zu Zeit, ob Redis wie erwartet gut läuft;
  • Wenn Sie feststellen, dass ein bestimmter Redis-Knoten reibungslos läuft , Sie können einen anderen Prozess benachrichtigen (z. B. seinen Client);
  • ermöglicht die automatische Umschaltung. Wenn ein Master-Knoten nicht verfügbar ist, kann einer der mehreren Slaves des Masters (falls mehr als ein Slave vorhanden ist) zum neuen Master gewählt werden. Die anderen Slave-Knoten ändern die Adresse des Masters, dem sie folgen, und werden zur neuen Adresse befördert des Sklaven des Herrn.

2. Sentinel unterstützt Cluster

Offensichtlich ist die Verwendung nur eines einzigen Sentinel-Prozesses zur Überwachung des Redis-Clusters unzuverlässig, wenn der Sentinel-Prozess ausfällt (Sentinel selbst hat auch ein Einzelpunktproblem, Einzelpunkt). -of -failure) Das gesamte Clustersystem funktioniert nicht wie erwartet. Daher ist es notwendig, Sentinel zu gruppieren, was mehrere Vorteile hat:

  • Auch wenn einige Sentinel-Prozesse ausgefallen sind, kann der Aktiv/Standby-Schalter des Redis-Clusters weiterhin durchgeführt werden;
  • Wenn es nur einen Sentinel-Prozess gibt, wenn dieser Prozess läuft fehlerhaft, oder wenn das Netzwerk blockiert ist, ist die Aktiv/Standby-Umschaltung des Redis-Clusters nicht möglich (Einzelpunktproblem);
  • Wenn mehrere Sentinels vorhanden sind, kann der Redis-Client nach Belieben eine Verbindung zu jedem Sentinel herstellen um Informationen über den Redis-Cluster zu erhalten.

3. Sentinel-Version

Die aktuell neueste stabile Version von Sentinel heißt Sentinel 2 (zur Unterscheidung vom vorherigen Sentinel 1). Wird zusammen mit dem Redis2.8-Installationspaket veröffentlicht. Nach der Installation von Redis2.8 finden Sie das Redis-sentinel-Startprogramm unter redis2.8/src/.

Dringend empfohlen: Wenn Sie Redis2.6 verwenden (Sentinel-Version ist Sentinel 1), sollten Sie besser Redis2.8-Version von Sentinel 2 verwenden, da Sentinel 1 viele Fehler aufweist und offiziell veraltet ist. Es ist also dringend Empfohlen wird die Verwendung von Redis2.8 und Sentinel 2.

4. Sentinel ausführen

Es gibt zwei Möglichkeiten, Sentinel auszuführen:

Die erste

redis-sentinel /path/to/sentinel.confredis-sentinel /path/to/sentinel.conf

第二种

redis-server /path/to/sentinel.conf --sentinel

以上两种方式,都必须指定一个sentinel的配置文件sentinel.conf,如果不指定,将无法启动sentinel。sentinel默认监听26379端口,所以运行前必须确定该端口没有被别的进程占用。

5. Sentinel的配置

Redis源码包中包含了一个sentinel.conf文件作为sentinel的配置文件,配置文件自带了关于各个配置项的解释。典型的配置项如下所示:

sentinel monitor mymaster 127.0.0.1 6379 2

sentinel down-after-milliseconds mymaster 60000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failover-timeout resque 180000 sentinel parallel-syncs resque 5

上面的配置项配置了两个名字分别为mymaster和resque的master,配置文件只需要配置master的信息就好啦,不用配置slave的信息,因为slave能够被自动检测到(master节点会有关于slave的消息)。需要注意的是,配置文件在sentinel运行期间是会被动态修改的,例如当发生主备切换时候,配置文件中的master会被修改为另外一个slave。这样,之后sentinel如果重启时,就可以根据这个配置来恢复其之前所监控的redis集群的状态。

接下来我们将一行一行地解释上面的配置项:

sentinel monitor mymaster 127.0.0.1 6379 2

Zweiter 🎜🎜🎜redis-server /path/to/sentinel.conf --sentinel🎜🎜Beide der beiden oben genannten Methoden müssen angegeben werden A Sentinel-Konfigurationsdatei sentinel.conf. Wenn nicht angegeben, wird Sentinel nicht gestartet. Sentinel überwacht standardmäßig Port 26379. Sie müssen daher vor der Ausführung sicherstellen, dass der Port nicht von anderen Prozessen belegt ist. 🎜

🎜5.🎜 🎜Sentinel-Konfiguration🎜🎜🎜🎜Das Redis-Quellpaket enthält eine sentinel.conf-Datei als Sentinel-Konfigurationsdatei. Die Konfigurationsdatei enthält Informationen zu jeder Konfiguration. Erläuterung der Artikel. Typische Konfigurationselemente sind wie folgt: 🎜🎜
🎜sentinel monitor mymaster 127.0.0.1 6379 2🎜
🎜sentinel down-after-milliseconds mymaster 60000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1 Sentinel-Monitor-Resque 192.168.1.3 6380 4 Sentinel-Down-after-milliseconds-Resque 10000 Sentinel-Failover-Timeout-Resque 180000 Sentinel-Parallel-Syncs-Resque 5🎜
🎜Die oben genannten Konfigurationselemente konfigurieren zwei Namen namens mymaster und resque Master, die Konfiguration In der Datei müssen nur die Informationen des Masters konfiguriert werden, und die Informationen des Slaves müssen nicht konfiguriert werden, da der Slave automatisch erkannt werden kann (der Masterknoten verfügt über Nachrichten über den Slave). Es ist zu beachten, dass die Konfigurationsdatei während der Ausführung von Sentinel dynamisch geändert wird. Wenn beispielsweise eine Master-Slave-Umschaltung erfolgt, wird der Master in der Konfigurationsdatei zu einem anderen Slave geändert. Auf diese Weise kann Sentinel bei einem späteren Neustart den Status des Redis-Clusters wiederherstellen, den es zuvor basierend auf dieser Konfiguration überwacht hat. 🎜🎜Als nächstes erklären wir die oben genannten Konfigurationselemente Zeile für Zeile: 🎜🎜sentinel monitor mymaster 127.0.0.1 6379 2🎜

Diese Zeile stellt dar, dass der Name des von Sentinel überwachten Masters mymaster ist und die Adresse 127.0.0.1:6379 lautet. Was bedeuten die letzten 2 am Ende der Zeile? Wir wissen, dass das Netzwerk unzuverlässig ist. Manchmal denkt ein Sentinel fälschlicherweise, dass ein Master-Redis aufgrund einer Netzwerküberlastung nicht mehr funktioniert Kommunizieren Sie, um zu bestätigen, ob ein Master wirklich tot ist. Dies bedeutet, dass der Master tatsächlich als nicht verfügbar betrachtet werden kann, wenn es zwei Sentinels im Cluster gibt. (Jeder Sentinel im Sentinel-Cluster kommuniziert auch miteinander über das Klatschprotokoll.)

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !

Das obige ist der detaillierte Inhalt vonLassen Sie uns über den Sentinel-Mechanismus in Redis sprechen und seine Verwendung vorstellen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen