Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Wie geht Redis Cluster mit Knotenfehlern um?


Wie geht Redis Cluster mit Knotenfehlern um?


So geht Redis Cluster mit Knotenausfällen um:

Automatisches Failover

Wenn ein Redis-Cluster-Masterknoten ausfällt, stuft der Cluster automatisch einen der Replikatknoten für diesen Master zum neuen Master hoch. Dieser Failover-Prozess erfolgt automatisch und ohne manuellen Eingriff.

Die wichtigsten Schritte im Failover-Prozess sind:

1. Die anderen Knoten im Cluster erkennen, dass der Master-Knoten ausgefallen ist, entweder über das Cluster-Gossip-Protokoll oder durch den Versuch, eine Verbindung zum Knoten herzustellen.

2. Der Cluster führt dann eine Wahl zwischen den Replikatknoten für diesen Master durch. Als neuer Master wird das Replikat mit den aktuellsten Daten gewählt.

3. Der ausgewählte Replikatknoten wird zum neuen Master befördert. Die anderen Replikate werden dann neu konfiguriert, um vom neuen Master zu replizieren.

4. Clients werden mithilfe der Fehlerantwort „MOVED“, die die neue Slot-zu-Knoten-Zuordnung enthält, zum neuen Masterknoten umgeleitet.

Slot-Abdeckung

Um bei Knotenausfällen verfügbar zu bleiben, erfordert Redis Cluster, dass die Mehrheit der Masterknoten verfügbar und kommunikationsfähig sind. Dies wird als Aufrechterhaltung der „Slot-Abdeckung“ bezeichnet.

Jeder Masterknoten im Cluster ist für eine Teilmenge der 16.384 Hash-Slots verantwortlich. Solange die Mehrheit der Master verfügbar ist und die ihnen zugewiesenen Slots bedienen kann, kann der Cluster weiter betrieben werden.

Wenn zu viele Master-Knoten ausfallen, sodass die verbleibenden Master nicht den gesamten Hash-Slot-Bereich abdecken können, ist der Cluster nicht verfügbar, bis die ausgefallenen Knoten wiederhergestellt oder ersetzt werden.

Replikat-Werbung

Redis Cluster ist auf Replikatknoten angewiesen, um eine hohe Verfügbarkeit bereitzustellen. Wenn ein Master ausfällt, wird einer seiner Replikatknoten automatisch zum neuen Master befördert.

Als neuer Master wird das Replikat mit den aktuellsten Daten gewählt. Dadurch wird sichergestellt, dass die Datenkonsistenz während des Failover-Prozesses gewahrt bleibt.

Umgang mit Split-Brain

Redis Cluster verwendet einen Quorum-basierten Ansatz, um Netzwerkpartitionen zu verwalten und „Split-Brain“-Szenarien zu vermeiden, bei denen der Cluster in mehrere unabhängige Cluster aufgeteilt wird.

Wenn die Mehrheit der Master nicht verfügbar ist, lehnen die verbleibenden Knoten Client-Anfragen ab, bis die Partition aufgelöst ist. Dadurch wird sichergestellt, dass die Datenkonsistenz gewahrt bleibt.

Durch die Nutzung dieser automatischen Failover- und Quorum-basierten Mechanismen ist Redis Cluster in der Lage, hohe Verfügbarkeit und Ausfallsicherheit bei Knotenausfällen und Netzwerkpartitionen bereitzustellen.

Zitate:
[1] https://yifan-online.com/en/km/article/detail/16750
[2] https://stackoverflow.com/questions/63878562/two-failure-support-in-3-node-redis-cluster
[3] https://redis.io/docs/latest/operate/oss_and_stack/management/scaling/
[4] https://redis.io/docs/latest/commands/cluster-nodes/
[5] https://github.com/lettuce-io/lettuce-core/issues/2318