Konfigurieren Ihres DAX-Clients - Amazon-DynamoDB

Konfigurieren Ihres DAX-Clients

Der DAX-Cluster ist ein Instance-basierter Cluster, auf den mit verschiedenen DAX-SDKs zugegriffen werden kann. Jedes SDK bietet Entwicklern konfigurierbare Optionen wie requestTimeout und Verbindungen, um spezifische Anwendungsanforderungen zu erfüllen.

Bei der Konfiguration Ihres DAX-Clients ist der Umfang Ihrer Client-Anwendung von entscheidender Bedeutung, insbesondere das Verhältnis von Client-Instances zu DAX-Server-Instances (maximal 11). Große Client-Instance-Flotten können zahlreiche Verbindungen zu DAX-Server-Instances generieren und diese möglicherweise überfordern. In dieser Anleitung werden bewährte Methoden für die DAX-Client-Konfiguration beschrieben.

Bewährte Methoden

  1. Client-Instances – Implementieren Sie Singleton-Client-Instances, um sicherzustellen, dass Instances anforderungsübergreifend wiederverwendet werden. Weitere Informationen zur Implementierung finden Sie in Schritt 4: Ausführen einer Beispielanwendung.

  2. Anforderungs-Timeouts – Anwendungen benötigen zwar oft niedrige Anforderungs-Timeouts, um eine minimale Latenz für Upstream-Systeme zu gewährleisten, aber zu niedrige Timeouts können zu Problemen führen. Niedrige Timeouts können häufige Wiederverbindungen zu Server-Instances auslösen, wenn auf DAX-Servern vorübergehende Latenzspitzen auftreten. Wenn es zu einem Timeout kommt, beendet der DAX-Client die bestehende Serverknotenverbindung und richtet eine neue ein. Da der Verbindungsaufbau ressourcenintensiv ist, können zahlreiche aufeinanderfolgende Verbindungen die DAX-Server überlasten. Wir empfehlen Folgendes:

    • Behalten Sie die Standardeinstellungen für das Anforderungs-Timeout bei.

    • Wenn niedrigere Timeouts erforderlich sind, implementieren Sie separate Anwendungs-Threads mit niedrigeren Timeout-Werten und schließen Sie Wiederholungsmechanismen mit exponentiellem Backoff ein.

  3. Verbindungs-Timeout – Für die meisten Anwendungen empfehlen wir, die Standardeinstellungen für das Verbindungs-Timeout beizubehalten.

  4. Gleichzeitige Verbindungen – Bestimmte SDKs, wie JavaV2, ermöglichen die Anpassung gleichzeitiger Verbindungen mit dem DAX-Server. Wesentliche Überlegungen:

    • DAX-Server-Instances können bis zu 40 000 gleichzeitige Verbindungen verarbeiten.

    • Die Standardeinstellungen eignen sich für die meisten Anwendungsfälle.

    • Große Client-Instances in Kombination mit vielen gleichzeitigen Verbindungen können Server überlasten.

    • Niedrigere Werte für gleichzeitige Verbindungen reduzieren das Risiko einer Serverüberlastung.

    • Beispiel für eine Leistungsberechnung:

      • Unter der Annahme einer Anforderungslatenz von 1 ms kann jede Verbindung theoretisch 1 000 Anforderungen pro Sekunde verarbeiten.

      • Bei einem Cluster mit 3 Knoten kann eine einzelne Client-Instance, die eine Verbindung mit allen Knoten herstellt, 3 000 Anforderungen pro Sekunde verarbeiten.

      • Bei 10 Verbindungen kann der Client etwa 30 000 Anforderungen pro Sekunde verarbeiten.

        Empfehlung: Beginnen Sie mit niedrigeren gleichzeitigen Verbindungseinstellungen und überprüfen Sie diese anhand von Leistungstests mit den zu erwartenden Produktions-Workload-Mustern.