Wie behebe ich den Fehler „No endpoints available“ (Keine Endgeräte verfügbar) im DAX-Client?

Lesedauer: 2 Minute
0

Ich habe in Amazon DynamoDB Accelerator (DAX) die Fehlermeldung „No endpoints available“ (Keine Endgeräte verfügbar) erhalten.

Kurzbeschreibung

Der Fehler „No endpoints available“ (Keine Endpunkte verfügbar) tritt auf, wenn der Client über keine Netzwerkroute zu einem Knoten des DAX-Clusters verfügt. Dieser Fehler kann auch auftreten, wenn ein Cluster ausgefallen ist oder eine hohe CPU-Auslastung aufweist.

Hier sind einige Beispielfälle, die zu diesem Fehler führen könnten:

  • Eine fehlgeschlagene Zustandsprüfung für DAX-Knoten: Der Client kann aufgrund der hohen CPU-Last der Knoten keine Zustandsprüfung der Clusterknoten durchführen.
  • Mehrere aufeinanderfolgende I/O-Ausnahmen für jeden Knoten: Der DAX-Client zählt die Anzahl der I/O-Ausnahmen, um festzustellen, ob ein Serverknoten ausgefallen ist. Der Client ruft eine Liste von Serverknoten vom Konfigurationsendpunkt ab. Wenn er mehr als fünf Fehler von einem Serverknoten erhält, entfernt der Client den Knoten aus der Liste der aktiven Serverknoten. Wenn alle Serverknoten auf diese Weise entfernt werden, erhält der Client eine leere Liste aktiver Knoten. Als Reaktion darauf zeigt der Client den Fehler „No endpoints available“ (Keine Endgeräte verfügbar) an.

Lösung

Gehen Sie wie folgt vor, um den Fehler zu beheben:

  • Im DAX-Client gibt es einen Thread, um die Liste der aktiven Serverknoten zu aktualisieren. Verwenden Sie die Aktualisierungsoption, um Ihre aktiven Knoten in der Liste wiederherzustellen.
  • Erhöhen Sie das RequestTimeout basierend auf dem Verkehrsmuster des Clients. Weitere Informationen finden Sie unter Optimieren der HTTP-Anforderungseinstellungen des AWS Java SDK für latenzsensitive Amazon DynamoDB-Anwendungen.
  • Erhöhen Sie das Intervall für die Zustandsprüfung. Standardmäßig beträgt das Intervall für die Zustandsprüfung 5 Sekunden.
    Hinweis: Wenn Sie dieses Intervall erhöhen, wird der Endpunkt nur dann wieder in den clientseitigen Endpunktsatz aufgenommen, wenn er aufgrund einer Socket-Timeout-Ausnahme entfernt wird.
  • Um das Wiederauftreten dieses Fehlers zu reduzieren, skalieren Sie auf einen größeren Instance-Typ hoch. Oder fügen Sie dem Cluster weitere Knoten hinzu, um ihn aufzuskalieren.
  • Dieser Fehler tritt mit größerer Wahrscheinlichkeit bei Clustern mit nur einem Knoten auf. Wenn Ihr Cluster nur einen Knoten hat, skalieren Sie den Cluster auf. Platzieren Sie jeden Knoten in einer anderen Availability Zone.

Ähnliche Informationen

ClientConfig (DAX)

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr