Was ist Redis Cluster Split Brain?
Die Aufteilung des Redis-Clusters bedeutet, dass sich der Redis-Masterknoten, der Redis-Slave-Knoten und der Sentinel-Cluster aufgrund von Netzwerkproblemen in unterschiedlichen Netzwerkpartitionen befinden. Zu diesem Zeitpunkt kann der Sentinel-Cluster die Existenz nicht erkennen des Masters, also befördern Sie den Slave-Knoten zum Master-Knoten. (Empfohlenes Lernen: Redis-Video-Tutorial )
Zu diesem Zeitpunkt gibt es zwei verschiedene Masterknoten, genau wie ein Gehirn in zwei geteilt ist.
Wenn der Client beim Cluster-Split-Brain-Problem weiterhin Daten basierend auf dem ursprünglichen Masterknoten schreibt, kann der neue Masterknoten die Daten nicht synchronisieren. Wenn das Netzwerkproblem behoben ist, wird der Sentinel angezeigt Der Cluster ersetzt den ursprünglichen Master-Knoten durch den ursprünglichen Master-Knoten. Zu diesem Zeitpunkt führt die Synchronisierung der Daten vom neuen Master zu einem großen Datenverlust.
Lösung
In der Redis-Konfigurationsdatei gibt es zwei Parameter
min-slaves-to-write 3
min-slaves-max-lag 10
Nach dem Login kopieren
Der erste Parameter zeigt an Mindestanzahl der mit dem Master verbundenen Slaves
Der zweite Parameter gibt die maximale Verzögerungszeit an, die der Slave benötigt, um eine Verbindung zum Master herzustellen
Wenn die Anzahl der mit dem Master verbundenen Slaves geringer ist als die erste Parameter und die Ping-Verzögerung. Wenn die Zeit kleiner oder gleich dem zweiten Parameter ist, lehnt der Master die Schreibanforderung ab. Nach der Konfiguration dieser beiden Parameter lehnt der ursprüngliche Masterknoten die Schreibanforderung ab, wenn es zu einer Cluster-Brain-Split kommt vom Client, wodurch der Umfang der Datensynchronisierung verringert werden kann.
Hinweis: Die Parameter in der neueren Version der Datei redis.conf wurden zu
min-replicas-to-write 3
min-replicas-max-lag 10
Nach dem Login kopieren
Das Datenverlustproblem bei der asynchronen Replikation in Redis kann auch diese beiden Parameter verwenden
Das obige ist der detaillierte Inhalt vonSo verhindern Sie Split-Brain im Redis-Cluster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!