Bewährte Methoden und Empfehlungen zur Drosselung
Bei einer Drosselung in PlayFab wird ein HTTP 429-Fehler zurückgegeben, der signalisiert, dass ein API-Aufruf gedrosselt wird. Der Antwortheader und -text enthalten wichtige Informationen, um den Fehler zu verstehen.
Beispielheader:
HTTP/1.1 429 Too Many Requests
Retry-After: 8
Beispielantworttext:
{
"code": 429,
"status": "TooManyRequests",
"retryAfterSeconds": 8,
"error": "APIClientRequestRateLimitExceeded",
"errorCode": 1199,
"errorMessage": "The client has exceeded the maximum API request rate and is being throttled"
}
Die Eigenschaft "Retry-After" und "retryAfterSeconds" gibt die Wartezeit in Sekunden an, bevor eine andere Anforderung versucht wird, eine Drosselung zu vermeiden. Wenn das neueste plattformübergreifende C/C++-SDK verwendet wird, versucht das SDK, den Wiederholungsversuch im Namen des Aufrufers zu verarbeiten. Verwenden Sie andernfalls die folgenden Strategien mit den Wiederholungswerten, um eine benutzerdefinierte Behandlung zu entwickeln.
Beheben von Drosselungsproblemen
Wenn Drosselungsfehler weiterhin bestehen, sollten Sie die folgenden Strategien in Betracht ziehen:
Überprüfen der Anforderungsrate
- Analysieren Sie, warum Sie eine große Anzahl von Anforderungen senden.
- Evaluieren Sie Möglichkeiten, die Anforderungsrate für bestimmte Spieler- oder Titelentitäten zu senken, auf die die API abzielt.
Batchverarbeitung von API-Aufrufen
- Reduzieren Sie die Häufigkeit durch Batchverarbeitung von API-Aufrufen.
- Beispiel: Batchprofil wird nicht jede Sekunde, sondern alle 10 Sekunden aktualisiert.
Wichtige Erkenntnisse
- Drosselungsfehler fordern eine HTTP 429-Antwort mit Details zur Art des Fehlers auf.
- Verwenden Sie die Eigenschaft Retry-After und "retryAfterSeconds" , um die Wartezeit zu bestimmen, bevor Sie eine weitere Anforderung stellen.
- Bewerten Sie die Notwendigkeit von hochfrequenten Anforderungen, und optimieren Sie sie entsprechend.
- Implementieren Sie Batchingstrategien, um Drosselungsbedenken zu verringern und die Gesamteffizienz des Systems zu verbessern.