Dieser Artikel vermittelt Ihnen ein detailliertes Verständnis der Prinzipien des Redis-Sentinel-Modus, spricht darüber, was Sentinel kann, startet die Sentinel-Methode und den Sentinel-Workflow. Ich hoffe, er wird Ihnen hilfreich sein!
Das Obige stellt das Prinzip der Redis-Master-Slave-Replikation vor, das das Problem der Redis-Datensicherung löst. Nachdem der Master-Knoten ausgefallen ist, kann kein neuer Master-Knoten automatisch ausgewählt werden, sondern der Slave-Knoten Manuell als Masterknoten festgelegt, geringe Effizienz und kein automatisches Failover möglich. Redis bietet offiziell eine Hochverfügbarkeitslösung.
Redis Sentinel ist die offizielle Hochverfügbarkeitslösung für Redis. Redis Sentinel bietet Hochverfügbarkeit für Redis. In der Praxis bedeutet dies, dass Sie mit Sentinel einen Redis-Cluster erstellen können, der gegen bestimmte Arten von Fehlern resistent ist und automatisch ein Failover ohne menschliches Eingreifen implementiert. [Verwandte Empfehlungen: Redis-Video-Tutorial]
1. Überwachen Sie den Gesundheitszustand von Redis-Clusterknoten (Master + Replikat) und Sentinel-Knoten
2. Automatisches Failover: Wenn der Master ausfällt, kann Sentinel ein Failover implementieren und den Client benachrichtigen, eine Verbindung zum neuen Master herzustellen.
3. Benachrichtigung: Über die API können Benachrichtigungen an Administratoren und Entwickler gesendet werden, und die überwachte Redis-Instanz schlägt fehl.
4: Der Client stellt eine Verbindung zum Sentinel her und Sentinel kann auf die Master- und Rückgabeknoteninformationen zugreifen der Client.
# 配置需要监控的master节点信息 2代表法定人数 作用是表示需要最少需要多少个sentinel节点同意 #master节点不可达才标记为客观下线 #举例 5个sentinel实例 quorum设置成2 那么有2个sentinel节点认为master不可达, #则其中一个会启动故障转移#如果至少有三个哨兵可到达,故障转移将被授权并实际启动。 sentinel monitor mymaster 127.0.0.1 6379 2 #只需要配置master sentinel会自动检测slave信息 sentinel down-after-milliseconds mymaster 60000 #如果master在指定时间内没有响应ping命令/或报错,则认为主观下线了。 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1 #指定故障转移的时候,同时支持多少个replica并行的与master同步数据,越小故障转移越久 #以上配置可以通过SENTINEL SET command.来实时修改。 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failover-timeout resque 180000 sentinel parallel-syncs resque 5Hinweis: Redis-Sentinel muss gemäß der Konfigurationsdatei wiederhergestellt werden. Der Portzugriff muss zwischen Sentinels geöffnet sein den gegenseitigen Zugang erleichtern.
4. Sentinel-Workflow
1. Zunächst realisiert der Sentinel die dynamische Wahrnehmung durch den Pub/Subscribe-Mechanismus.Hier gibt es zwei Situationen: Zum einen geht der Master subjektiv offline, zum anderen geht der Master objektiv offline.
Subjektiv offline: Jeder Sentinel sendet alle 1 Sekunde einen Ping-Befehl an den Master. Wenn der Master nicht innerhalb von Millisekunden antwortet, geht der Sentinel-Knoten davon aus, dass der Master subjektiv offline ist. Ziel offline:Wenn der Knoten, der subjektiv offline ist, der Masterknoten ist, sucht der Sentinel-Knoten über den Befehl nach der Beurteilung anderer Sentinel-Knoten auf dem Masterknoten in der Sentinel-Konfiguration ist überschritten) (Anzahl der Personen). Zu diesem Zeitpunkt geht der Sentinel-Knoten davon aus, dass tatsächlich ein Problem mit dem Master-Knoten vorliegt, sodass er objektiv offline ist soll objektiv offline sein.
Beachten Sie, dass das Offline-Ziel nur für den Master-Knoten wirksam wird. Es wird ein Failover ausgelöst.
3 Der Master ist offline und ein Failover ist erforderlich. Zunächst müssen Sie den Sentinel-Master auswählen Knoten und verwenden Sie den Sentinel-Masterknoten, um ein Redis-Failover durchzuführen. sentinel is-masterdown-by-addr
Nachdem Sie den Masterknoten ausgewählt haben, beginnen Sie mit der Pflege der Clusterbeziehung.
1. Sentinel-Knoten, senden Sie den Slave-No-One-Befehl an den neuen Master-Knoten, um ihn zu einem unabhängigen Knoten zu machen.
2. Sentinel-Knoten, senden Sie den Slave-IP-Port an andere Knoten, folgen Sie dem Master-Knoten
! !
Das obige ist der detaillierte Inhalt vonEine kurze Analyse des Prinzips des Sentry-Modus in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!