Verbinden mit Amazo-Neptune-Endpunkten - 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.

Verbinden mit Amazo-Neptune-Endpunkten

Amazon Neptune verwendet einen Cluster von DB-Instances anstelle einer einzelnen Instance. Jede Neptune-Verbindung wird von einer spezifischen DB-Instance verarbeitet. Wenn Sie eine Verbindung zu einem Neptune-Cluster herstellen, verweisen der von Ihnen angegebene Hostname und Port auf einen zwischengeschalteten Handler, der als Endpunkt bezeichnet wird. Ein Endpunkt ist eine URL, die eine Host-Adresse und einen Port enthält. Neptune-Endpunkte verwenden verschlüsselte Transport Layer Security/Secure Sockets Layer (TLS/SSL)-Verbindungen.

Neptune verwendet den Endpunkt-Mechanismus, um diese Verbindungen zu abstrahieren, sodass Sie die Hostnamen nicht fest kodieren oder eine eigene Logik schreiben müssen, um Verbindungen umzuleiten, wenn einige DB-Instances nicht verfügbar sind.

Ihrem Anwendungsfall entsprechend können Sie mit Endpunkten jede Verbindung der entsprechenden Instance oder Gruppe von Instances zuordnen. Mit benutzerdefinierten Endpunkten können Sie eine Verbindung zu Teilmengen von DB-Instances herstellen. Die folgenden Endpunkte sind in einem Neptune-DB-Cluster verfügbar:

Neptune-Cluster-Endpunkte

Ein Cluster-Endpunkt ist ein Endpunkt für einen Neptune-DB-Cluster, der eine Verbindung zur aktuellen primären DB-Instance für diesen DB-Cluster herstellt. Jeder Neptune-DB-Cluster verfügt über einen Cluster-Endpunkt und eine einzelne primäre DB-Instance.

Der Cluster-Endpunkt bietet Failover-Support für Lese-/Schreibverbindungen zum DB-Cluster. Verwenden Sie den Cluster-Endpunkt für alle Schreibvorgänge auf dem DB-Cluster, darunter Einfügungs-, Aktualisierungs- und Löschvorgänge sowie DDL-Änderungen (Data Definition Language). Sie können den Cluster-Endpunkt auch für Lesevorgänge nutzen, beispielsweise Abfragen.

Wenn die aktuelle primäre DB-Instance eines DB-Clusters ausfällt, führt Neptune automatisch ein Failover zu einer neuen primären DB-Instance durch. Während eines Failovers bedient der DB-Cluster weiterhin Verbindungsanfragen von der neuen primären DB-Instance an den Cluster-Endpunkt mit minimaler Serviceunterbrechung.

Das folgende Beispiel zeigt einen Cluster-Endpunkt für einen Neptune-DB-Cluster.

mydbcluster.cluster-123456789012.us-east-1.neptune.amazonaws.com:8182

Neptune-Reader-Endpunkte

Ein Reader-Endpunkt ist ein Endpunkt für einen Neptune-DB-Cluster, der eine Verbindung zu einer verfügbaren Neptune-Replica für diesen DB-Cluster herstellt. Jeder Neptune-DB-Cluster verfügt über einen Reader-Endpunkt. Wenn es mehr als eine Neptune-Replica gibt, leitet der Reader-Endpunkt jede Verbindungsanforderung an eine der Neptune-Replicas weiter.

Der Reader-Endpunkt bietet Round-Robin-Routing für schreibgeschützte Verbindungen zum DB-Cluster. Verwenden Sie den Reader-Endpunkt für Lesevorgänge, beispielsweise -Abfragen.

Sie können den Reader-Endpunkt nur für Schreibvorgänge verwenden, wenn Sie über einen Einzel-Instance-Cluster (einen Cluster ohne Read Replicas) verfügen. Nur in diesem Fall kann der Reader sowohl für Schreib- als auch für Leseoperationen verwendet werden.

Das Round-Robin-Routing für den Reader-Endpunkt funktioniert durch Ändern des Hosts, auf den der DNS-Eintrag verweist. Mit jeder Auflösung des DNS erhalten Sie eine andere IP-Adresse und Verbindungen werden anhand dieser IP-Adressen geöffnet. Nachdem eine Verbindung hergestellt wurde, werden alle Anfragen nach dieser Verbindung an denselben Host gesendet. Der Client muss eine neue Verbindung herstellen und den DNS-Datensatz erneut auflösen, um eine Verbindung zu einem potenziell anderen Read Replica herzustellen.

Anmerkung

WebSockets Verbindungen werden oft über lange Zeiträume aufrechterhalten. Zum Anfordern verschiedener Read Replicas gehen Sie wie folgt vor:

  • Sicherstellen, dass Ihr Client den DNS-Eintrag jedes Mal auflöst, wenn er eine Verbindung herstellt.

  • Trennen Sie die Verbindung und stellen Sie sie weider her.

Verschiedene Client-Software löst den DNS möglicherweise unterschiedlich auf. Beispiel: Wenn Ihr Client den DNS auflöst und dann die IP-Adresse für jede Verbindung verwendet, werden alle Anfragen an einen einzelnen Host geleitet.

DNS-Caching für Clients oder Proxys löst den DNS-Namen auf denselben Endpunkt aus dem Cache auf. Dies ist ein Problem für Round-Robin-Routing- und Failover-Szenarien.

Anmerkung

Deaktivieren Sie alle DNS-Caching-Einstellungen, um die DNS-Auflösung jedes Mal zu erzwingen.

Der DB-Cluster verteilt Verbindungsanforderungen an den Reader-Endpunkt unter den verfügbaren Neptune-Replicas. Wenn der DB-Cluster lediglich eine primäre DB-Instance enthält, bedient der Reader-Endpunkt Verbindungsanforderungen über die primäre DB-Instance. Wenn eine Neptune-Replica für diesen DB-Cluster erstellt wird, bedient der Reader-Endpunkt bei nur minimaler Service-Unterbrechung Verbindungsanforderungen für den Reader-Endpunkt über die neue Neptune-Replica.

Das folgende Beispiel zeigt einen Reader-Endpunkt für einen Neptune-DB-Cluster.

mydbcluster.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182

Neptune-Instance-Endpunkte

Ein Instance-Endpunkt ist ein Endpunkt für eine DB-Instance in einem Neptune-DB-Cluster, der eine Verbindung zu dieser spezifischen DB-Instance herstellt. Jede DB-Instance in einem DB-Cluster hat unabhängig vom Instance-Typ einen eigenen eindeutigen Instance-Endpunkt. Daher ist ein Instance-Endpunkt für die aktuelle primäre DB-Instance des DB-Clusters vorhanden. Es ist auch ein einzelner Instance-Endpunkt für jede Neptune-Replica im DB-Cluster vorhanden.

Der Instance-Endpunkt ermöglicht die direkte Kontrolle über Verbindungen zum DB-Cluster in Szenarien, in denen die Verwendung des Cluster-Endpunkts oder des Reader-Endpunkts möglicherweise nicht geeignet ist. Beispiel: Ihre Client-Anwendung erfordert möglicherweise einen detaillierten Lastenausgleich je nach Workload-Typ. In diesem Fall können Sie mehrere Clients so konfigurieren, dass sie Verbindungen zu verschiedenen Neptune-Replicas in einem DB-Cluster herstellen, um die Lese-Workloads zu verteilen.

Das folgende Beispiel zeigt einen Instance-Endpunkt für eine DB-Instance in einem Neptune-DB-Cluster.

mydbinstance.123456789012.us-east-1.neptune.amazonaws.com:8182

Benutzerdefinierte Neptune-Endpunkte

Ein benutzerdefinierter Endpunkt für einen Neptune-Cluster ist ein von Ihnen gewählter Satz von DB-Instances. Wenn Sie eine Verbindung zum Endpunkt herstellen, wählt Neptune eine Instance in der Gruppe aus, um die Verbindung zu ermöglichen. Sie bestimmen, auf welche Instances sich dieser Endpunkt bezieht, und Sie entscheiden auch, welchen Zweck der Endpunkt erfüllen soll.

Ein Neptune-DB-Cluster verfügt erst dann über benutzerdefinierte Endpunkte, wenn Sie diese erstellen. Sie können für jeden bereitgestellten Neptune-Cluster bis zu fünf benutzerdefinierte Endpunkte erstellen.

Der benutzerdefinierte Endpunkt stellt Datenbankverbindungen mit Lastausgleich bereit. Diese basieren auf anderen Kriterien als die schreibgeschützte oder die Lese-Schreib-Funktion der DB-Instances. Da die Verbindung mit jeder DB-Instance erfolgen kann, die mit dem Endpunkt verknüpft ist, müssen alle Instances innerhalb dieser Gruppe dieselben Leistungs- und Speicherkapazitätsmerkmale besitzen. Wenn Sie benutzerdefinierte Endpunkten verwenden, wird der Reader-Endpunkt für diesen Cluster in der Regel nicht verwendet.

Dieses Feature ist für fortgeschrittene Benutzer mit spezialisierten Workloads vorgesehen, bei denen es nicht sinnvoll ist, wenn alle Neptune-Replicas im Cluster identisch sind. Mit benutzerdefinierten Endpunkten können Sie die Kapazität der DB-Instances vorhersagen, die für die einzelnen Verbindungen verwendet werden.

Wenn Sie beispielsweise mehrere benutzerdefinierte Endpunkte definieren, die eine Verbindung zu Gruppen von Instances mit unterschiedlichen Instance-Klassen herstellen, können Sie Benutzer mit unterschiedlichen Leistungsanforderungen zu den Endpunkten leiten, die für ihre Anwendungsfälle jeweils am besten geeignet sind.

Das folgende Beispiel zeigt einen benutzerdefinierten Endpunkt für eine DB-Instance in einem Neptune-DB-Cluster.

myendpoint.cluster-custom-123456789012.us-east-1.neptune.amazonaws.com:8182

Weitere Informationen finden Sie unter Arbeiten mit benutzerdefinierten Endpunkten.

Überlegungen zu Neptune-Endpunkten

Berücksichtigen Sie bei der Arbeit mit Neptune-Endpunkten Folgendes:

  • Bevor Sie einen Instance-Endpunkt verwenden, um eine Verbindung zu einer bestimmten DB-Instance in einem DB-Cluster herzustellen, sollten Sie die Verwendung des Cluster-Endpunkts oder des Leser-Endpunkts für den DB-Cluster in Betracht ziehen.

    Cluster-Endpunkt und Reader-Endpunkt bieten Unterstützung für Hochverfügbarkeitsszenarien. Wenn die primäre DB-Instance eines DB-Clusters ausfällt, führt Neptune automatisch einen Failover zu einer neuen primären DB-Instance durch. Dies geschieht entweder durch Heraufstufung einer vorhandenen Neptune-Replica zu einer neuen primären DB-Instance oder durch Erstellung einer neuen primären DB-Instance. Bei einem Failover können Sie den Cluster-Endpunkt verwenden, um die Verbindung zu der neu heraufgestuften oder erstellten primären DB-Instance wiederherzustellen, oder den Reader-Endpunkt verwenden, um eine Verbindung zu einer anderen Neptune-Replica im DB-Cluster wiederherzustellen.

    Wenn Sie diesen Ansatz nicht verwenden, können Sie trotzdem sicherstellen, dass Sie sich mit der richtigen DB-Instance im DB-Cluster für die vorgesehene Operation verbinden. Dazu können Sie manuell oder programmatisch den Satz an verfügbaren DB-Instances im DB-Cluster ermitteln und deren Instance-Typen nach dem Failover bestätigen, bevor Sie den Instance-Endpunkt einer bestimmten DB-Instance verwenden.

    Weitere Informationen zu Failovers finden Sie unter Fehlertoleranz für einen Neptune-DB-Cluster.

     

  • Der Reader-Endpunkt leitet Verbindungen nur an verfügbare Neptune-Replicas in einem Neptune-DB-Cluster weiter. Es werden keine spezifischen Abfragen weitergeleitet.

    Wichtig

    Neptune führt keinen Lastausgleich durch.

    Wenn Sie einen Lastausgleich für Abfragen zur Verteilung des Lese-Workloads für einen DB-Cluster ausführen möchten, müssen Sie dies in Ihrer Anwendung durchführen. Sie müssen Instance-Endpunkte verwenden, um eine direkte Verbindung mit Neptune-Replicas zum Lastausgleich herzustellen.

     

  • Das Round-Robin-Routing für den Reader-Endpunkt funktioniert durch Ändern des Hosts, auf den der DNS-Eintrag verweist. Der Client muss eine neue Verbindung herstellen und den DNS-Datensatz erneut auflösen, um eine Verbindung zu einer potenziell neuen Read Replica herzustellen.

     

  • Während eines Failovers könnte der Reader-Endpunkt für kurze Zeit Verbindungen an die neue primäre DB-Instance eines DB-Clusters leiten, wenn eine Neptune-Replica zur neuen primären DB-Instance heraufgestuft wird.