View a markdown version of this page

Erledigen Sie den Host-Austausch und den Verbindungsabbruch - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erledigen Sie den Host-Austausch und den Verbindungsabbruch

Wenn Neptune einen Host ersetzt (z. B. während einer Wartung oder eines Failovers), werden bestehende Verbindungen zu diesem Host ungültig. In containerisierten Umgebungen kann dies dazu führen, dass alle Threads in einem Container zum Stillstand kommen, wenn der Client die Ersetzung nicht ordnungsgemäß handhabt.

Verwenden Sie aktuelle Client-Versionen

Wenn Sie die Gremlin-Abfragesprache verwenden, verwenden Sie eine TinkerPop Treiberversion, die mit Ihrer Neptune-Engine-Version kompatibel ist (siehe Zugriff auf ein Neptune-Diagramm mit Gremlin Kompatibilitätstabelle). Wenn Sie den Java-Treiber verwenden, sollten Sie einen Wrapper für neptune-gremlin-client den TinkerPop Java-Treiber in Betracht ziehen, der Verbindungsverwaltungsfunktionen wie die Überprüfung des Endpunkts und die Failover-Behandlung hinzufügt. Er folgt den gleichen Versionskompatibilitätsregeln wie der zugrunde liegende TinkerPop Treiber.

Verwenden Sie neptune-gremlin-client Version 3.x (oder mindestens Version 2.0.7), je nachdem, was Ihre Neptune-Version zulässt. Diese neueren Versionen verbessern die Ausfallsicherheit und die Verbindungsverarbeitung.

OpenCypher-Benutzer mit dem Neo4j-Treiber sollten das Driver Objekt schließen und neu erstellen, wenn Sie während des Failovers einen Verbindungsfehler feststellen. Neptune unterstützt die Bolt-Protokollversionen 1 bis 4.0. Weitere Informationen finden Sie unter Bewährte Methoden für Neptune mit openCypher und Bolt.

Verwenden Sie Cluster- oder Reader-Endpunkte

Stellen Sie keine direkte Verbindung zu Instanzendpunkten her. Verwenden Sie den Cluster-Endpunkt für Schreibvorgänge und den Reader-Endpunkt für Lesevorgänge. Wenn Sie Instanzendpunkte mit verwenden müssenneptune-gremlin-client, aktivieren Sie die Filterung der Endpunkt-Integritätsprüfung über die API. /status

Konfigurieren Sie Liveness Tests mit Toleranz

Stellen Sie Ihren Kubernetes-Liveness Probe failureThreshold auf mindestens 30 mit einem Zeitraum von 10 Sekunden (insgesamt 300 Sekunden) ein. Dadurch wird verhindert, dass Kubernetes Pods während des Zeitfensters von etwa 5 Minuten neu startet, in dem Neptune einen Host-Austausch abschließt.

Implementieren Sie Retry mit Backoff

Eine einzelne fehlgeschlagene Anfrage beim Host-Austausch sollte den Container nicht zum Absturz bringen. Implementieren Sie eine Wiederholungslogik mit exponentiellem Backoff bei Verbindungsausfällen, sodass vorübergehende Fehler beim Austausch ohne Eingreifen behoben werden können. Hinweise zu Ausnahmen, die wiederholt werden können, finden Sie unter Ausnahmen für Neptune-Transaktionen.