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!
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:
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:
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.
Es gibt zwei Möglichkeiten, Sentinel auszuführen:
redis-sentinel /path/to/sentinel.conf
redis-sentinel /path/to/sentinel.conf
redis-server /path/to/sentinel.conf --sentinel
以上两种方式,都必须指定一个sentinel的配置文件sentinel.conf,如果不指定,将无法启动sentinel。sentinel默认监听26379端口,所以运行前必须确定该端口没有被别的进程占用。
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
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. 🎜🎜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!