Direkt zum Inhalt

Wie minimiere ich Ausfallzeiten, wenn mein ElastiCache for Redis skaliert wird?

Lesedauer: 5 Minute
0

Ich möchte meine Ausfallzeiten minimieren, wenn mein Amazon ElastiCache for Redis skaliert wird.

Behebung

Um Ausfallzeiten zu minimieren, überprüfen Sie die folgenden Maßnahmen und überprüfen Sie Ihre Einrichtungs- und Wartungsverfahren:

  • Vermeiden Sie eine Skalierung, wenn Sie eine hohe Arbeitslast haben, um Ausfallzeiten während der Synchronisation zu minimieren. Wenn der Cluster eine hohe Arbeitslast hat und die Skalierung viel Zeit in Anspruch nimmt, reduzieren Sie die eingehenden Anfragen an Redis, um Synchronisationsfehler zu vermeiden. Wenn eine Synchronisation stattfindet, überprüfen Sie die SaveInProgress-Metrik in Amazon CloudWatch, um festzustellen, wann die Synchronisation stattgefunden hat. Beachten Sie, dass die SaveInProgress-Metrik Daten jede Minute erfasst und möglicherweise keine Synchronisation erfasst, die unter einer Minute abgeschlossen wurde. Weitere Informationen finden Sie unter Überwachung bewährter Methoden mit Amazon ElastiCache for Redis mithilfe von Amazon CloudWatch.
  • Testen Sie die Skalierung in einer Nicht-Produktionsumgebung, um Probleme zu identifizieren, die durch eine clientseitige Fehlkonfiguration verursacht werden, wenn Sie eine Verbindung zum Cluster herstellen. Je nach Skalierungstyp kann ein Knoten während der Skalierung hinzugefügt, während der Skalierung entfernt werden oder die Knoten-IP-Adresse kann sich während der Skalierung ändern. ElastiCache for Redis bietet verschiedene Arten von Verbindungsendpunkten für die Verbindung mit dem Cluster, sodass der gewählte Verbindungsendpunkttyp von den Anwendungsanforderungen abhängt.
  • Konfigurieren Sie den Redis-Client oder den Anwendungscode so, dass die Abfrage auf einem anderen Replikat wiederholt wird oder um eine Abfrage an den primären Anwendungscode zu senden. Wenn der Client eine Verbindung zu einem neuen Replikat herstellt, das sich im Synchronisationsprozess befindet, wird Folgendes **GELADEN: Redis lädt den Datensatz in den Speicher. Es wird ein ** Fehler angezeigt. Die Zeit, die zum Laden des Datensatzes benötigt wird, hängt von der Datengröße und Leistung des Knotens ab. Testen Sie in einer Umgebung, in der es sich nicht um eine Produktionsumgebung handelt, um festzustellen, ob es sich um ein Problem handelt.
  • Konfigurieren Sie den Cluster so, dass er automatisch skaliert wird. Die automatische Skalierung verhindert Leistungsprobleme, die durch einen plötzlichen Anstieg der eingehenden Arbeitslast verursacht werden. Weitere Informationen finden Sie unter Auto Scaling ElastiCache für Redis-Cluster.

Überprüfen Sie für Redis-Cluster, bei denen der Clustermodus ausgeschaltet ist, diese Aktionen und Ihre Einrichtungs- und Wartungsverfahren:

  • Zur Skalierung: Wenn Ihre Anwendungen nur einen primären Endpunkt für die Verbindung verwenden, treten keine Ausfallzeiten auf, wenn Sie einen Replikatknoten entfernen. Wenn Ihre Anwendungen einen Reader oder einzelne Endpunkte verwenden, um eine Verbindung zu diesem Replikatknoten herzustellen, wird die ursprüngliche Verbindung unterbrochen. Wenn die ursprüngliche Verbindung unterbrochen wird, muss eine neue TCP-Verbindung hergestellt werden. Die Anwendung muss außerdem eine DNS-Suche durchführen, um zu vermeiden, dass eine Verbindung zum entfernten Replikatknoten hergestellt wird. Wenn der Client Reader-Endpunkte verwendet, kann es aufgrund der DNS-Propagierung von Reader-Endpunkten zu Ausfallzeiten kommen.
  • Stellen Sie bei der Skalierung sicher, dass Sie die Skalierung zu Zeiten durchführen, in denen die Arbeitslast minimal ist, um Ausfallzeiten zu vermeiden, die durch die Synchronisation verursacht werden.
  • Bei Änderungen des Knotentyps kann eine hohe Arbeitslast dazu führen, dass die Synchronisation fehlschlägt. Außerdem muss Ihre Anwendung möglicherweise eine DNS-Suche auf den Primär- oder Reader-Endpunkten durchführen, um neue Verbindungen zum neuen Knoten herzustellen. Die DNS-Propagierung dauert einige Sekunden und es kann zu einer Dienstunterbrechung kommen, bevor der Client den neuen Knoten erreicht. Für Redis-Versionen 5.0.5 oder neuer wird die Unterbrechung minimiert. Es ist eine bewährte Methode, auf die neue Redis-Version zu aktualisieren, um ElastiCache zu optimieren.

Überprüfen Sie für Redis-Cluster, bei denen der Clustermodus aktiviert ist, diese Aktionen und Ihre Einrichtungs- und Wartungsverfahren:

  • Informationen zu minimalen oder keinen Ausfallzeiten während der Skalierung finden Sie unter Redis-Cluster-Client-Erkennung und exponentielles Backoff.
  • Informationen zur Minimierung der Ausfallzeiten beim Skalieren finden Sie unter Online-Cluster-Größenänderung. Skalieren Sie schrittweise, um Leistungsprobleme zu minimieren. Stellen Sie sicher, dass Sie die Leistung des Clusters während der Spitzenzeiten nach der ersten Skalierung überprüfen, bevor Sie die weitere Skalierung durchführen.
  • Informationen zur Minimierung der Ausfallzeiten beim Skalieren von Clustern finden Sie unter Online-Cluster-Größenänderung.
  • Hohe Arbeitslasten können dazu führen, dass die Synchronisation fehlschlägt, wenn Änderungen am Knotentyp vorgenommen werden. Außerdem stimmen die IP-Adressen der neuen Knoten möglicherweise nicht mit denen der alten Knoten überein. Um die IP-Adresse zu ermitteln, kann Ihre Anwendung den Befehl cluster nodes oder cluster slots verwenden, um aktualisierte Informationen aus dem Cluster abzurufen. Redis-Clients, die Redis-Cluster unterstützen, können die Cluster-Topologie aktualisieren. Informationen zur Konfiguration des Redis-Clients finden Sie in der Dokumentation für Ihren spezifischen Clienttyp.
  • Wenn Sie die Anzahl der Replikate ändern, stellen Sie sicher, dass Sie zuerst die Leistung der primären Knoten überprüfen, bevor Sie weitere Replikatknoten hinzufügen. Wenn die Anzahl der Replikatknoten abnimmt und der Client von einem entfernten Replikatknoten lesen muss, werden Anfragen an neue Replikatknoten gesendet. Um Anfragen an die entfernten Knoten zu verhindern, muss der Client außerdem die Cluster-Topologie aktualisieren.

Ähnliche Informationen

Replikation: Redis (Cluster-Modus deaktiviert) vs. Redis (Cluster-Modus aktiviert)

Ihre Node-Endpunkte finden

ElastiCache for Redis skalieren

Stellen Sie sicher, dass Sie über genügend Speicher verfügen, um einen Redis-Snapshot zu erstellen

Best Practices mit Redis-Kunden

AWS OFFICIALAktualisiert vor 2 Jahren