Drosselung in PlayFab
Eine Drosselung tritt auf, wenn ein Client versucht, die für eine bestimmte API oder APIs festgelegte Ratenbegrenzung für API-Aufrufe zu überschreiten. Diese Grenzwerte gelten, um zu verhindern, dass ein einzelnes Spiel die PlayFab-Dienste für andere Benutzer stört.
Grundlegendes zur PlayFab-Drosselung
PlayFab wendet das Drosselungslimit in den meisten Fällen basierend auf dem Ziel der Anforderung oder den Auswirkungen der Anforderung an. Wenn Sie eine API verwenden, die einen Spieler mit einem Token anzielt oder ändert, das für diesen Spieler spezifisch ist, wählt PlayFab tarife aus, die für einen Spieler geeignet sind. Wenn Anforderungen ein titelspezifisches Token verwenden und nicht auf einen Spieler abzielen, werden andere Grenzwerte ausgewählt, die für einen Titel geeignet sind. Diese Grenzwerte sind höher als ein einzelnes Spieler-spezifisches Token, da sich das Aufrufen mit einem Titeltoken auf mehr Spieler und Entitäten auswirken oder schneller mehr PlayFab-Aktionen ausführen kann als ein einzelner Spieler. PlayFab beschränkt auch die Anzahl der Anforderungen, die Sie in einem bestimmten Zeitraum mit Buckets zulässiger Anforderungen vornehmen können. Die meisten Grenzwerte verfügen über zwei Buckets: einen, mit dem Sie in kurzer Zeit mehr Anforderungen für Burstszenarien erstellen können, und einen anderen, mit dem Sie weniger Anforderungen in einer längeren Zeit für normale Szenarien durchführen können.
Zusammenfassung des Drosselungsalgorithmus
- Identifizieren Sie die Entität, auf die der API-Aufruf abzielt, indem Sie zuerst im Text (z. B. Titelplayer, Titelentität, master Spieler oder Zeichen) suchen.
- Wenn dem Körper keine eindeutige Zielentität fehlt, verwenden Sie den Tokentyp (Titelspieler, master Spieler oder Titel), um den Grenzwert zu bestimmen.
- Wenn Limit-Buckets abgelaufen sind, entfernen Sie diese, und erstellen Sie neue leere Buckets. Erhöhen Sie die Anzahl der Limit-Buckets (sowohl Burst als auch dauerhaft), und überprüfen Sie, ob der Aufruf einen der Buckets für Grenzwerte überschreitet.
- Wenn der Grenzwert überschritten wird, geben Sie den Fehler 429 mit den verbleibenden Sekunden zurück, bis ein neuer leerer Bucket verfügbar ist.
Vorteile der Drosselung der Zielentität
Die Drosselung der Zielentität ist ein Mechanismus, der Grenzwerte für bestimmte Vorgänge basierend auf dem Typ der Zielentität erzwingt. Diese Grenzwerte tragen dazu bei, die Systemstabilität aufrechtzuerhalten und Missbrauch zu verhindern, sodass Benutzer:
- Konsistente Grenzwerte pro Spieler: Das Hochskalieren des Titels wirkt sich nicht auf die Grenzwerte für einzelne Spieler aus, sodass Titel ihre Benutzerbasis erweitern können, ohne sich Gedanken über beliebige Kapazitätslimits machen zu müssen.
- Einheitliche Spielerdrosselung: Unabhängig von gleichzeitigen Benutzern erleben Spieler die gleiche Drosselung. Auf diese Weise können Entwickler Drosselungsprobleme frühzeitig in der Entwicklung mit einer kleinen Benutzerbasis identifizieren.
- Dienststabilität: Die Drosselung verhindert, dass der Datenverkehr eines einzelnen Spielers PlayFab-Dienste oder eine bestimmte Datenebenenpartition, die über mehrere Titel hinweg freigegeben wird, überlastet oder beeinträchtigt.