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
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.
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.
Verbindungs-Timeout – Für die meisten Anwendungen empfehlen wir, die Standardeinstellungen für das Verbindungs-Timeout beizubehalten.
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.